git detach head in branch & merge

问题描述 投票:0回答:1

我正在学习一些与git相关的主题和命令,当我使用以下组合时发生了这种情况 粪便GitHub 特征,使用 git push 并同时在github上修改文件,我创建了2个分支(jsfirstimagegallery)只是想了解出了什么问题,我试图分析和打算在重要的项目不重复。

编辑为什么会这样?564903c (imagegallery) Image gallery 分支在图形视图中是断开的?

什么是 HEAD@{0}, HEAD@{1}, HEAD@{2}, HEAD@{3} 是指?

的输出 git log --all --decorate --oneline --graph 指挥部

*   76ebb92 (HEAD -> master) Merge branches 'master' and 'master' of https://github.com/sometest/test
|\  
| * 4f264fe (origin/master) Created CONTRIBUTING.md
| *   1159fe3 Merge pull request #3 from sometest/code_of_conduct-patch-2
| |\  
| | * a7184f0 (origin/code_of_conduct-patch-2) Updated code of conduct
| |/  
| *   4369922 Merge pull request #2 from sometest/code_of_conduct-patch-1
| |\  
| | * 1893331 (origin/code_of_conduct-patch-1) Created CODE_OF_CONDUCT.md
| |/  
| * b3fbde0 Created .gitignore
| *   6275e91 Merge pull request #1 from sometest/add-license-1
| |\  
| | * 38d02c5 (origin/add-license-1) Create LICENSE
| |/  
* | cc0cdad (jsfirst) Silly story
* | a52170c Using events in JS
* | c271cdd Added number guessing game
* | 493a155 Learned basic of JS
|/  
| * 564903c (imagegallery) Image gallery
|/  
* 25266ce first commit

产量 git reflog 指挥部

76ebb92 (HEAD -> master) HEAD@{0}: reset: moving to HEAD
76ebb92 (HEAD -> master) HEAD@{1}: checkout: moving from 564903c3078ffdbdbd43bceb3da3495daddf82da to master
564903c (imagegallery) HEAD@{2}: checkout: moving from master to 564903c
76ebb92 (HEAD -> master) HEAD@{3}: checkout: moving from imagegallery to master
564903c (imagegallery) HEAD@{4}: checkout: moving from master to imagegallery
76ebb92 (HEAD -> master) HEAD@{5}: pull: Merge made by the 'recursive' strategy.
cc0cdad (jsfirst) HEAD@{6}: checkout: moving from imagegallery to master
564903c (imagegallery) HEAD@{7}: checkout: moving from master to imagegallery
cc0cdad (jsfirst) HEAD@{8}: reset: moving to cc0cdad
25266ce HEAD@{9}: checkout: moving from imagegallery to master
564903c (imagegallery) HEAD@{10}: checkout: moving from master to imagegallery
25266ce HEAD@{11}: checkout: moving from imagegallery to master
564903c (imagegallery) HEAD@{12}: checkout: moving from master to imagegallery
25266ce HEAD@{13}: checkout: moving from jsfirst to master
cc0cdad (jsfirst) HEAD@{14}: checkout: moving from imagegallery to jsfirst
564903c (imagegallery) HEAD@{15}: commit: Image gallery
25266ce HEAD@{16}: checkout: moving from master to imagegallery
25266ce HEAD@{17}: checkout: moving from jsfirst to master
cc0cdad (jsfirst) HEAD@{18}: commit: Silly story
a52170c HEAD@{19}: checkout: moving from master to jsfirst
25266ce HEAD@{20}: checkout: moving from jsfirst to master
a52170c HEAD@{21}: commit: Using events in JS
c271cdd HEAD@{22}: commit: Added number guessing game
493a155 HEAD@{23}: commit: Learned basic of JS
25266ce HEAD@{24}: checkout: moving from master to jsfirst
25266ce HEAD@{25}: commit (initial): first commit

Git命令历史

 4221  git init
 4222  git add README.md
 4223  git commit -m "first commit"
 4224  git remote add origin https://github.com/sometest/sometest.git
 4225  git push -u origin master
 4233  git checkout -b jsfirst
 4235  git add chapter-1/hello.html
 4236  git add README.md
 4238  git commit -m "Learned basic of JS"
 4241  git add chapter-1/numberguessinggame.html
 4242  git commit -m "Added number guessing game"
 4247  git add chapter-1/basic2/*
 4249  git commit -m "Using events in JS" 
 4258  git add assessment-1/sillystorygenerator/*
 4259  git commit -m "Silly story" 
 4262  git checkout master
 4265  git add assessment-1/imagegallery/*
 4266  git reset assessment-1/imagegallery
 4270  git checkout -b imagegallery
 4273  git add assessment-1/imagegallery
 4274  git commit -m "Image gallery" .
 4280  git checkout jsfirst
 4284  git checkout master
 4285  git merge --squash jsfirst
 4287  git checkout imagegallery
 4296  git merge --squash imagegallery
 4297  git checkout master
 4298  git merge --squash imagegallery
 4305  git merge --squash imagegallery
 4312  git reset --hard cc0cdad
 4319  git checkout imagegallery
 4323  git checkout master
 4326  git pull 
 4333  git checkout imagegallery
 4342  git checkout master
 4343  git merge --squash imagegallery
 4345  git merge imagegallery
 4366* git chekout 564903c
 4371* git commit -a -m "Image Gallery"
 4372* git checkout master
 4376* git commit -a -m "Image Gallery Detach HEAD"
 4379* git reset --hard\n
git github git-branch branching-and-merging
1个回答
1
投票

我觉得唯一值得回答的是(因为这是唯一的问题)。

什么是 HEAD@{0}, HEAD@{1}, HEAD@{2}, HEAD@{3} 是指?

HEAD@{n} 意思是 n 前的承诺 当前 HEAD. 所以.., HEAD@{1} 意思是说,之前的一次承诺 HEAD. 您也可以使用 @~n作为上述符号的简写(,使用 @~n 而不是 HEAD~n 以简化事情)。)

为什么564903c(imagegallery)图库分支在图形视图中被断开?

你需要说明你所提供的指令命令的预期,只有这样才会清楚。你提供的数据量很大,一下子要读完。没有人有时间去看这么大块的命令(不是指责你,而是陈述一个真实的案例)。你需要把事情说得具体一点(下面再讲)。

我给你一个建议,当你在这里发问题的时候,只需要让别人复制你repo的现状就可以了。这就意味着尽可能减少冗余指令的数量。例如,这一段。

4319  git checkout imagegallery
4323  git checkout master
4326  git pull 
4333  git checkout imagegallery
4342  git checkout master

包含多余的指令 你可以把这部分只用一个 git checkout master, git pull 随后 git checkout imagegallery. 同时,也不需要使用 -u 在做 push,特别是如果你做一个 git push origin <branch-name>.

另外,你可能想看看 这个 Git 提供的关于 Git 终端用户面临的各种常见问题的 FAQ。也许会对你有一点帮助:)

衷心祝愿

© www.soinside.com 2019 - 2024. All rights reserved.