如何从Git中的其他推送提交中提交特定分支的单个提交?

时间:2014-08-15 09:03:39

标签: git branching-and-merging git-commit

我是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命令进行回答。

2 个答案:

答案 0 :(得分:0)

您可以使用git merge-base

在本地仓库中进行操作
git checkout TESST123
git reset --soft `git merge-base TESST123 dev`
git commit -m 'All of TESST123'

你需要强行推动你的分支,因为它的历史已经改变了。只有当其他人克隆了你的远程仓库并在同一个分支机构工作时,这才是一个问题。

git push --force origin TESST123

您还可以将一个提交本地合并到dev

git checkout dev
git merge TESST123

答案 1 :(得分:0)

找到另一种方法来git rebase -i HEAD~3

选择dfasdsad

选择34sdsad3

选择07834343

应用壁球将34sdsad3,0783434合并为dfasdsad

选择dfasdsad

壁球34sdsad3

壁球07834343

将最后两次提交合并为单一提交