我正在尝试将我的分叉与上游同步。
git rebase upstream/master
但遗憾的是,我发现我的本地提交有100多个,而且每个提交都需要手动解决冲突。
我想到的一个想法是我可以将所有本地提交压缩成一个,然后只更改一个提交将更容易。但这是我想要的最后一件事,因为我真的想保留我的所有承诺#39;记录。
无论如何都要用较少的努力来重新投入巨额承诺?
答案 0 :(得分:1)
我认为合并实际上是你想要的,而不是rebase。解决合并冲突将等同于您将所有100多次提交压缩到单个提交,然后重新提交该提交时所看到的内容。但是通过合并,您可以根据需要保留您的在制品历史记录。
如果您只有少数提交与同行的最新作品进行同步,或者特定需要重写历史记录,那么Rebase很不错,但是当您有100多次提交时,您已经创建了一个更常用分支处理的用例。通过合并提交同步我认为在这种情况下非常有意义。
如果确实需要成为唯一一个可以查看正在进行的工作历史记录的人,那么您可以创建一个指向您头部的本地分支(git branch <my-true-local-history>
)本地正在进行的工作以保留对提交的命名引用,然后执行仍然会创建合并提交的压缩合并(git merge --squash
),但会将正在进行的工作提交折叠为单个commit(您之前创建的本地分支仍将指向真实的详细历史记录)。