我尝试从master的某个提交创建新分支。我不记得我使用的命令,但我认为这个(但不确定)
git branch branchname <sha1-of-commit>
我有一堆提交的新分支。但我发现master分支丢失了在新分支中发现的所有提交。与丢失提交相关的更改也在主分支中丢失。
看起来我从主服务器分支了一堆提交到新分支。实际上我从来没有想过master branch丢失它的提交。如何将这些分离的提交恢复为master?
请参阅下面的问题说明:
答案 0 :(得分:1)
因此,提交4,7,8,10和13在新分支上,您希望它们在主分支中。
你无法进入分离的HEAD状态,使用上面的命令,你将需要做
git checkout <sha-1 of commit>
OR
git checkout branchname
所以最有可能你运行另一个搞乱的东西,使用
git reflog
试图找出出错的地方。
但是,如果你运行了正确的命令,你就不记得了。将该分支合并回master。
1 /签出提交13,我假设这是你在分离的HEAD状态下做出的最终提交。
git checkout <sha-1 of commit 13>
2 /给该分支命名,这意味着给这个分支命名,这样可以更方便地结账。如果你运行
git branch -a
你会得到类似的东西
(detached from <sha-1 of commit 13)
master
*Other branches
重命名分支do;
git checkout -b <branch-name>
然后再次列出分支
<branch-name>
master
*Other branches
3 /现在合并很简单,只需结帐到您的主分支并合并
git checkout master
git merge <branch-name>
干杯!