我对git比较新,所以这个问题可能是我自己的错。但在我的拙见中,它太脆弱了。任何恢复损害的建议都将受到赞赏。
这是我的分支机构。
Machine A (Mac):
master
couch
Machine B (Windows):
master
在机器B上,我试图从机器A拉出主分支和沙发分支。不幸的是,我忘了我还没有在机器B上创建沙发分支。这是我在机器B上做的。来源设置为机器A.
git pull origin master
git pull origin couch
令我惊讶的是,git自动将沙发分支合并到机器B上的主人!我的期望是git在机器B上为我创建沙发分支,如果它不存在的话。
如何撤消合并?我还没准备好将沙发分支合并为主人。我将在机器B上完全删除它并从机器A再次克隆。我只是好奇是否有更好的解决方案。
答案 0 :(得分:4)
git pull origin couch
将从机器A获取沙发分支并将其与当前分支合并,在您的情况下将是主分支,这就是您看到沙发合并为主分区的原因。您所要做的就是简单的git pull
,然后是git checkout -b couch origin/couch
只需git reflog
,看看您的主人之前在哪里,并git reset --hard <sha from reflog>
或类似git reset --hard HEAD@{2}
或者你可以git reset --hard ORIG_HEAD