我最近就多台电脑上使用Git进行开发的设置提出了一个问题,并在这里得到了解答。我得到的方案解决了我的主分支(master)的情况,但不能解决基于主分支的侧分支(side branches)。
这是我目前的设置:
A--B--C--D master
\
E--F--G--H BUG_37
BUG_37
是一个分支,正在开发对系统中一个可选择跟踪的 bug 的修复,并最终将合并到主线中,但目前是独立的。在这种情况下,我在一台机器上对 master
分支进行了一些更改:
A--B--C--D--I--J--K master
\
E--F--G--H BUG_37
我随后将BUG_37
分支变基到master
上,以确保它作为最新更改的增强功能正常工作:
A--B--C--D--I--J--K master
\
E1--F1--G1--H1 BUG_37
假设我们在rebase之前遇到了一些需要手动修复的冲突。如果我将这些更改推送到远程存储库,现在希望将更改拉回另一个开发系统,该系统仍具有原始设置,最好的方法是什么?运行
git pull --rebase
将再次运行rebase,并且我必须手动处理第一次经历的冲突,对吗?如果我在处理冲突时犯了一个小错误,导致E1-H1在这个新系统中略有不同,我的存储库将更加不同步。如何使本地存储库回到原始状态,并使远程存储库处于第三个状态,以确保本地存储库与远程存储库完全匹配(删除E-H的更改并将
BUG_37
的 HEAD 移动到新位置)?