这是一个关于最佳实践的问题。这可能很简单,但我对 Git 还不太熟悉,我想养成经常做的事情的良好习惯。
情况如下。我有两台计算机 CompA 和 CompB,以及一个远程存储库(在 Bitbucket 上)。假设我在一个唯一的分支上工作。
我需要对文件进行重大更改。我从计算机 A 开始,但我没有时间完成,需要在计算机 B 上继续我的工作。我想让计算机 B 可以使用计算机 A 上已进行的更改。
我通常通过按原样提交更改、推送到远程存储库、然后将其拉到计算机 B 来执行此操作。但是,这会创建一个不是完整的自给自足的更改集的提交。
如果可能的话,我希望只提交一次最终的更改。至少在远程存储库中,如果可能的话,在计算机 A 和 B 的本地存储库中也是如此。
最干净的方法是什么?
答案1
最好在单独的分支上进行较大的更改,因为在 Git 中创建一个分支非常容易。提交尽可能多的内容,将分支推送到 BitBucket,将其拉到计算机 B... 您可以使用git rebase --interactive
将提交压缩在一起,然后再将它们合并到主分支。
[master] $ git checkout -b fixXYZ
[fixXYZ] $ hack hack hack
[fixXYZ] $ git commit -m "Fixed some part"
[fixXYZ] $ hack hack
[fixXYZ] $ git commit -m "Fixed another part"
[fixXYZ] $ git push -u origin fixXYZ
以后,任何时候前合并至主分支:
[master] $ git checkout fixsomething
[fixXYZ] $ git rebase -i master
(尽管没有必要将所有内容压缩到单个提交中 - 但有时读取几个较小的提交的日志会更容易。)