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

joe*_*von 1 git github

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

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

但现在我正在与一个私有github存储库的团队合作.我不想用我当地无用的提交历史来污染团队.

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

git rebase -i

你问我要不要告诉我你要反对哪个分支,

SNIP

什么分支?:)

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

谢谢!

Ada*_*ruk 5

git rebase -i
Run Code Online (Sandbox Code Playgroud)

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

git rebase -i HEAD~4
Run Code Online (Sandbox Code Playgroud)

这将允许您"编辑"当前签出分支中的最后4个提交.

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

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

git reset --mixed HEAD~10
Run Code Online (Sandbox Code Playgroud)

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

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

git add path/to/one/of/the/files/file.txt
git commit -m "added feature X to file.txt"
Run Code Online (Sandbox Code Playgroud)

重复其余文件.沿途检查git status.

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