在git推送之前,如何将本地提交合并为一个文件?

时间:2011-12-06 17:57:03

标签: git github

现在一直使用git,但只使用基本功能。

为了切换到Textmate并保留Eclipse所具有的酷炫的本地历史记录功能,我做了this。哪个工作得很好。

但是现在我正在开发一个拥有私有github存储库的团队。我不想用我当地无用的提交历史来污染团队。

我知道有一些工具可以编辑我的提交,但是:

  

git rebase -i

     

你问我要不要告诉我你想去哪个分店   反对,

     

SNIP

什么分支? :)

所以我想知道你是否有关于如何管理所有这些的提示。我想将一个文件的所有提交合并为一个提交最大值。并编辑消息,使其显示有用的内容。

谢谢!

1 个答案:

答案 0 :(得分:5)

git rebase -i

希望您告诉它要处理的提交范围。最常见的用途是

git rebase -i HEAD~4

允许您“编辑”当前签出分支中的最后4个提交。

我不确定你为什么要“按文件”这样做。此外,如果你有合并,'rebase -i'会让你头疼。根据我的推断,你可以这样做:

将当前提交设置为更改的开头,但保持工作目录不变。

git reset --mixed HEAD~10

如果您有10次提交更改,这会将您移回到您开始的位置。 “混合”将确保您不进行任何这些更改并且索引是干净的。

然后,提交对每个文件的更改:

git add path/to/one/of/the/files/file.txt
git commit -m "added feature X to file.txt"

重复其余文件。使用git status一起检查。

当您推送时,如果您已经推送了一些提交,则可能需要添加-f选项(--force)。如果其他人正在处理这些提交,请让他们知道你这样做了。他们将不得不改变他们的变化。