当我想将一个新文件分成几个提交时,我可以使用git add -N <file>
,然后使用git gui
以交互方式分段。但是,当我在分期时犯了错误时,git gui
不会让我取消单独的行,因为它是一个新文件(这对我来说似乎是个错误)。当然,我总是可以取消整个文件并重新开始,但我想知道是否有更有效的方法。
我正在使用git 1.7.5
。
为了澄清,这个问题特定于新的aka未跟踪文件!
从命令行类型:
git reset -p
这将允许您使用标准命令行界面来管理帅哥,从索引中选择性地释放帅哥。这与git add -p
相反。
UPDATE
好吧,当文件是新文件时,你似乎无法选择性地分阶段。鉴于git-gui和标准的git hunk编辑器都不允许这样做,它可能是不可能的。
使用fugitive
你可以很容易地做到这一点。只需调用:Gdiff
命令,然后暂停和取消你想要的任何内容。您甚至可以直接编辑索引文件。当然,这个解决方案要求你对vim
和vimdiff
相当舒服......
我刚刚遇到了同样的问题:我刚刚提交了一个新文件,我想要取消该文件中的一些行,并将它们作为单独的提交。我解决的解决方案是:
git commit -m 'REVERTME'
git revert HEAD
git rebase -i
对fixup
进行第一次新提交,并可选择使用reword
进行还原提交。对此进行排序的另一种简单方法是从文件中删除除第一次提交中所需的一行之外的所有内容。暂存它然后添加回文件的其余部分。从那时起,你可以像平常一样登台