说我创建了一个分支,然后合并成主,然后意识到事情出错了。我如何恢复到我合并之前?几个git使用问题
说我创建一个分支,在它上面工作,然后去合并并获得冲突的分配。假设我不想处理这个问题,现在让新分支成为主人,我该怎么做?
顺便说一句,你在网上看到过的最好的教程是什么,现实生活中的GIT使用模式?
说我创建了一个分支,然后合并成主,然后意识到事情出错了。我如何恢复到我合并之前?几个git使用问题
说我创建一个分支,在它上面工作,然后去合并并获得冲突的分配。假设我不想处理这个问题,现在让新分支成为主人,我该怎么做?
顺便说一句,你在网上看到过的最好的教程是什么,现实生活中的GIT使用模式?
git reset --hard
和最后一个良好提交的名称。或者,使用reflog:[email protected]{1}
将带您回到以前的位置。如果它被推送,请使用git-revert
创建一个新的提交更正。git reset --hard mybranch
。这使得高手指向与mybranch相同的提交,实质上是抛弃了分支之后所有对master的工作。再次,如果主人的工作被公诸于众,把它扔掉是个坏主意。git reset --hard
就足够了,对于垫底,你将不得不做git rebase --abort
说我创建一个分支,然后合并成高手,那么实现的事情出错。我如何恢复到我合并之前?
如果你还没有推到主线或有推,知道absoutely确保没有其他人已经从主线拉然后做:
的git的复位 - 硬HEAD〜N(N为你想提交的数量回去)
如果你推或无法确定没有人还没有拉升然后坦白到自己的错误,并做:
混帐恢复
说我创建了一个分支,在它上面工作,然后去合并并获得冲突的分配。假设我不想处理这个问题,现在让新分支成为主人,我该怎么做?
git checkout <desired branch>
git branch -d master
git branch -m <desired branch> master
顺便说一句,什么是你现实生活GIT使用模式在网上看到的最好的教程?
如果合并,不希望犯,正确的命令是
git reset --hard [email protected]{1}
这意味着重置分支到其原来的位置(读使用{}语法 - 你可以通过阅读关于git reflog获得大部分信息)。 HEAD^1
也可以工作,但您必须知道您指定了当前提交的第一个父项。
如果您已经推送了此提交,请谨慎通知所有人。如果您无法在未来强制更新共享存储库中的分支,请不要这样做。
执行此操作的正确方法是再次合并,但这次是从新分支执行并指定您只需要您的一方。 “他们的”策略已被弃用。
git merge -s ours master
然后更新主到另一个分支是:
git checkout master
git merge --ff-only otherbranch
或者,相反,因为你知道这将是一个快进合并(以上只是一个安全检查) ,您可以将主服务器更新为当前提交而不检出:
git update-ref refs/heads/master HEAD
并且您可以继续在您的分支上工作。如果你打算在master上工作,那么使用前面的命令。
这里有一些链接,我发现有用:
gitready.com Commuinity Git Book Pro Git Book my article
其它来源:
IRC channel on freenode Twitter Search waterfall
你也可以找我在同一个ID下的twitter上。
-1永不改变公共分支上的历史记录 – 2010-12-02 16:32:42
没有指定它是否被推送。 – 2010-12-02 16:33:14