* [971f835] (HEAD, original_idea) Now working here. Some comment 9
* [692b673] Some comment 8
* [3ebff62] Reverted to original idea. Some comment 7
| * [72ea01d] (master) Decided it wasn't worth the effort. Some comment 6
| * [985c1ad] Some comment 5
| * [4d7d491] Some comment 4
| * [0c697bb] Branched to try an idea. Some comment 3
|/
* [7280b1f] Some comment 2
* [5c2c6d0] Some comment 1
* [bc7aac6] Initial commit
所以,master
被遗忘了。不确定是怎么回事。一旦我确定我完成了没有成功的分支,我检查了[7280b1f]
并继续从那里开始。
我该如何解决这个问题?我这臭名昭着的超级头"问题
master
是否必须与HEAD
对齐才能获得最佳的回购健康状况?
我的工作流程非常简单。这只是管理单个文本文件。在绝大多数情况下,它是:
git add .
git commit -am "Some comment"
就是这样。
我决定尝试一个想法并创建了一个分支。当它没有成功时,我检查了该分支的根,然后回到git add/commit
例程。
答案 0 :(得分:32)
如果git branch
显示您当前的分支是original_idea,则不会是detached HEAD situation。
但无论如何,如果你希望你的主人反映你当前的提交" (what HEAD means in Git):
git branch -f master HEAD
git checkout master
您可以在" How to I “move” my commits from “no branch” to an actual branch?"。
中找到其他替代方案这个问题是它使当前以master为结尾的整个分支消失。
然后您需要做的就是:
original_idea
)这意味着:
git checkout original_idea
git rebase master
git checkout master
git merge original_idea
答案 1 :(得分:13)
这是臭名昭着的“超级头”"问题
不,HEAD指向分支 original_idea
主人是否必须与HEAD保持一致以获得最佳健康状况 回购?
不, master 只是一个传统的名称,通常被认为是一个易于构建的分支,并且希望是一个有效的快照。
我该如何解决这个问题?
如果您已将 master 推送到另一个存储库,则需要将来自 original_idea 的更改合并到 master 中:
git checkout master
git merge original_idea
请注意,如果有任何相互冲突的更改,您需要解决这些问题。
如果您尚未将 master 推送到另一个存储库,则可以删除 master 并从 original_idea 重新创建 master 。 警告:所有正在使用主的人都必须重置主分支。
$ git checkout master
Switched to branch 'master'
$ git checkout -b experiment_1
Switched to a new branch 'experiment_1'
# Here we are going to delete master. Should be safe, since experiment_1
# was created from this point on the previous command
$ git branch -d master
Deleted branch master (was 72ea01d).
$ git checkout original_idea
Switched to branch 'original_idea'
# Now that we checked out the branch HEAD is pointing to, we can recreate master
$ git checkout -b master
Switched to a new branch 'master'