我的应用程序需要每天不断地从多个分支合并,有时每天多个版本。我喜欢rebase能够帮助我从主分支中仅隔离我的功能分支中已更改的代码。然而,当我在回放更改时处理10或20个冲突时,变基经常变成一场噩梦。这些冲突中的每一个都有可能被错误地解决,我想避免它。有没有办法做一个"快速"如果它实际上没有从rebased-to分支回放更改但只使用最新的分支,并修改功能分支,使其仅包含与最新rebased-to分支的差异?即它并不关心历史,它只是做差异并使用每个分支的最新部分进行修改?
答案 0 :(得分:0)
您正在寻找的是壁球,您可以与git merge --squash
和rebase is a little more complicated合并。
但是,如果您只是查看代码并希望查看功能分支中的更改(而不是分支和主分区之间的差异),则可以使用git log master..branch
查看所有更改在分支和git diff master...branch
(注意三点),看看分支中发生了什么变化。
git diff [--options] <commit>...<commit> [--] [<path>...] This form is to view the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>. "git diff A...B" is equivalent to "git diff $(git-merge-base A B) B". You can omit any one of <commit>, which has the same effect as using HEAD instead.
有关三点的详细信息,请参阅the gitrevisions man page和Revision Selection in Pro Git。