我是Git的新手。
我有一个主要分支"开发",其中所有分支将被合并我正在处理分支"TESST123
"
我已经做了三个提交(使用:git commit -am "comment"
)和推(使用:git push origin TESST123
)一个接一个,例如
Commit 07834343kfjsd948343243....
Author myname
date thu aug 14 17:20:37 2014
Commit 34sdsad32432432dfdsf....
Author myname
date thu aug 14 15:12:52 2014
Commit dfasdsadkfjsd948343243....
Author myname
date thu aug 14 00:08:06 2014
我如何将所有这些提交合并到分支TESST123
的单个提交中,然后再次推送,因此结果分支将包含一个包含所有应用更改的提交..
我搜索过壁球,但不太明白它的意思。
如果可能,试着用git
命令回答
您可以在本地repo中使用git merge-base
:
git checkout TESST123
git reset --soft `git merge-base TESST123 dev`
git commit -m 'All of TESST123'
你需要强制推你的分支,因为它的历史已经改变了。只有当其他人克隆了你的远程repo并从同一个分支工作时,这才会成为一个问题。
git push --force origin TESST123
你也可以在本地合并一个提交到dev
:
git checkout dev
git merge TESST123
找到了另一种方法来获得rebase -i HEAD~3
选择dfasdsad
选择34 sdsad3
选07834343
使用squash将34sdsad3,0783434合并为dfasdsad
选择dfasdsad
南瓜34 sdsad3
南瓜07834343
将合并最后两个提交为一个提交