我有一个分支A和一个分支B。分支B比分支A多三个提交。
我可以使用git diff
列出在A和B之间更改的文件。
但我的问题是:当我在A上时,如何检出所有这些在A和B之间更改的文件,然后将它们作为一次提交全部提交到A中?
我有一个分支A和一个分支B。分支B比分支A多三个提交。
我可以使用git diff
列出在A和B之间更改的文件。
但我的问题是:当我在A上时,如何检出所有这些在A和B之间更改的文件,然后将它们作为一次提交全部提交到A中?
B
严格在A
之前(而不是之后),则可以简单地运行"merge --squash":git merge --squash B
git commit
B
分支拉入A
,然后将最后三个提交合并为一个即可。$ git checkout A
$ git pull origin B
$ git log
# Now top 3 commits are B's commit
# now back to 3 commits but exists all changes of that 3 commits (soft reset)
$ git log
# copy the last commit-hash of A (before pulled)
$ git reset --soft <commit-hash>
# now do one commit with all changes
$ git add .
$ git commit -m 'add last 3 commits of B as one in A'
$ git push origin HEAD # push the changes to remote
git rebase -i HEAD~3