1

我需要修复一个 Git 存储库,它有一个分离的头部和 2 个具有不相关历史的连续分支。我必须在工作中使用 SourceTree,但如果需要,我也可以使用命令行。我要做的是将当前的 [Head](图像上的 3)与 [origin/master][origin/head][master] (2) 协调,而不会丢失其间的提交。我还想合并(或重新附加)2 个分支(粉色和蓝色)。(我总共只想要 1 个分支)。我不确定最好按哪个顺序进行:协调 [Head] 和 [origin/master] 或重新附加 2 个分支。

Git 存储库映像

我不得不隐藏所有的名字和评论,因为这是为了工作,我被允许分享的内容受到限制。很抱歉,如果这个问题没有达到最佳标准,这是我在任何类型的论坛上的第一个问题。

4

1 回答 1

0

一旦在 处创建分支标签HEAD,您就可以自由地签出其他分支而不会丢失任何提交历史记录(当然,稍后您仍然可以检索提交历史记录,只要您知道 SHA-ID,但这很难跟踪)

所以首先,在你所在的地方创建一个本地HEAD分支

git 分支开发

(develop 是某个分支名称,您可以根据需要给任何其他名称)

现在,如果您看到您的源代码树,您将同时看到HEAD和开发(或您在上面的 git 命令中给出的任何名称)。您现在可以自由结帐master分支。

git结账大师

一旦你这样做,你的HEAD意志现在在master。记住:HEAD告诉您当前代码在哪个快照(或哪个提交)中。

接下来,如果您还想获得您的develop分支(您刚刚在上面创建的分支)的提交,master您需要做的就是合并

假设你在 master 分支(如果你不是,那么 checkout master)

git 合并开发

(这会在本地 master 中带来开发分支提交)

git push 起源大师

(这会将这些更改推送到远程/主控)

提示:在 git 中有一个更好的选项rebase , 而不是merge 。但我假设您是 git 新手,因此最好通过一些在线材料并研究它以了解合并和变基之间的区别。(或者你可以请你的同行给你解释)

于 2017-07-05T12:22:53.473 回答