现在一直使用git,但只使用基本功能。
为了切换到Textmate并保留Eclipse所具有的酷炫的本地历史记录功能,我做了this。哪个工作得很好。
但是现在我正在开发一个拥有私有github存储库的团队。我不想用我当地无用的提交历史来污染团队。
我知道有一些工具可以编辑我的提交,但是:
git rebase -i
你问我要不要告诉我你想去哪个分店 反对,
SNIP
什么分支? :)
所以我想知道你是否有关于如何管理所有这些的提示。我想将一个文件的所有提交合并为一个提交最大值。并编辑消息,使其显示有用的内容。
谢谢!
答案 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)。如果其他人正在处理这些提交,请让他们知道你这样做了。他们将不得不改变他们的变化。