根据Pro Git Book:
\n\n\n\n\n\n\n在 Git 中,HEAD 是指向您当前所在的本地分支的指针。
\n
\n\n\nHEAD 引用的特殊之处在于它实际上指向另一个引用。它是指向当前活动分支的指针。
\n
但事实证明:
\n\n\n\n\nHEAD 不是最新版本,而是当前版本。通常,它是当前分支的最新版本,但不一定是。
\n
例如:
\n\n\n\n\n如果您签出较旧的内容(例如像 git checkout v1.1 这样的标签),那么您的 HEAD 会更改为该标签的提交。它可能不是最新的提交。
\n
所以 HEAD 可以指向一个分支或者。当 HEAD 引用分支 X 时,与 HEAD 引用分支 X 的实际头提交相比,git 命令的行为是否有不同?(在类似 C 的表示法中,我正在讨论当 **HEAD 引用某个提交时与 *HEAD 引用相同提交时的情况。)
\n几天前,我使用以下命令创建了一个新的 git 分支:
git checkout -b release-1_5
Run Code Online (Sandbox Code Playgroud)
自从创建该新分支以来,我对其进行了额外的更改和提交。
我是唯一的开发人员,在此期间没有对实际的“主人”进行任何更改。我想将“release-1_5”分支的当前状态设置为新的主分支,并将“master”设置为新的工作(HEAD?)分支,这样如果我稍后执行以下操作:
git checkout -b release-1_6
Run Code Online (Sandbox Code Playgroud)
它将创建一个从 master 分支出来的新分支
我知道我可能可以继续执行“git checkout -b {new-branch-name}”(创建一个线性分支分支(-of-a-branch[-...]),但我'我非常确定这会搞乱 Git 类似地铁的分支图。
如果重要的话,目前,存储库完全是本地的,因此无需担心拉/推或来源。
我不确定如何表达这个问题,因为我是 git 新手。我的一位同事正在研究一个名为“旋转”的分支中的功能。我想利用他写的代码,所以我跑了git checkout rotation. master和rotation分支之间的主要区别在于旋转分支有一个额外的子目录,名为rotation/. 但是,运行 git checkout 后,该子目录没有出现在我的工作目录中。如何让这个子目录显示出来?我做了一些谷歌搜索,发现当你 git checkout 一个分支时,git 不会对你的工作目录进行更改,如果这些更改与工作目录中的跟踪更改冲突。然而,这里不是这种情况,至少对于rotation/子目录,因为它甚至不存在于master. 那么为什么这个子目录不显示呢?我怎样才能得到它?
我有一个远程分支作为我正在使用的develop_1 。我所有的本地代码更改都已提交给它,但我的领导意外删除了该远程分支。
我在本地系统中进行了所有这些代码更改。现在,我想将所有这些更改推送回新远程分支中的同一个 Git 存储库,例如develop_2。
如何创建新分支、同步本地更改并将其推送到远程?
我有一个 git 分支,我想将它与我的主分支合并,以将我项目的这个阶段交付给产品所有者。
但我想将来继续这个分支。
合并后继续一个分支是常见的吗?
或者我应该首先删除合并的分支并使用新分支继续该功能?
git pull
git merge <my_branch>
git commit
git push
Run Code Online (Sandbox Code Playgroud)
过了一会儿:
git checkout <my_branch>
Run Code Online (Sandbox Code Playgroud)
并改变它。
我可以看到文章在 Bitbucket 中删除分支,但这只是一次删除一个分支。我想在一次运行中删除多个分支,这可以通过命令行还是手动进行?
我对使用 git 相当陌生,所以我需要将文件从 master 分支推送到另一个分支,以便在出现问题时进行备份,然后继续在 master 分支上工作。我如何在 git bash 中做到这一点?
我使用 git branch -a 来显示分支。
我假设 git branch -a 没有按字母顺序排序。
需要git branch -a按数字排序,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11而不是10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9
考虑一下,我没有能力重命名像前缀0这样的分支Part-02,例如作为一种解决方法。
我对第三方命令行 git 客户端以及最后的手段持开放态度。
在做 git branch -a
电流输出:
remotes/origin/Part-10_LoadStateListener
remotes/origin/Part-11_Navigating-to-the-Detail-Screen
remotes/origin/Part-12_Implementing-the-DetailsFragment
remotes/origin/Part-13_Handling-Process-Death
remotes/origin/Part-1_Project-Setup
remotes/origin/Part-2_Layouts-&-Model-Class
remotes/origin/Part-3_Navigation-Component
remotes/origin/Part-4_API-Interface
remotes/origin/Part-5_Dependency-Injection-with-Hilt
remotes/origin/Part-6_PagingSource-&-PagingData
remotes/origin/Part-7_PagingDataAdapter
remotes/origin/Part-8_Header-&-Footer
remotes/origin/Part-9_Search-Functionality
Run Code Online (Sandbox Code Playgroud)
预期输出:
remotes/origin/Part-1_Project-Setup
remotes/origin/Part-2_Layouts-&-Model-Class
remotes/origin/Part-3_Navigation-Component
remotes/origin/Part-4_API-Interface
remotes/origin/Part-5_Dependency-Injection-with-Hilt
remotes/origin/Part-6_PagingSource-&-PagingData
remotes/origin/Part-7_PagingDataAdapter
remotes/origin/Part-8_Header-&-Footer
remotes/origin/Part-9_Search-Functionality
remotes/origin/Part-10_LoadStateListener
remotes/origin/Part-11_Navigating-to-the-Detail-Screen
remotes/origin/Part-12_Implementing-the-DetailsFragment
remotes/origin/Part-13_Handling-Process-Death …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Github 中设置一个预接收钩子,我们将使用它来避免不必要的提交。我正在寻找一些需要维护的规则
需要自定义提交消息。每次提交都应在开始示例中包含现有的 JIRAJIRA-XXX | Commit message
对任何拉取请求也强制执行此操作。
需要分支名称格式。
例子:abc_devName_some_br_name_jira_XXX
这里有人可以帮助我吗,这该怎么办?
git ×10
git-branch ×10
github ×2
bitbucket ×1
command-line ×1
git-bash ×1
git-checkout ×1
git-merge ×1
sorting ×1
webhooks ×1