在git中取消暂存新文件部分的最快方法是什么?

问题描述 投票:21回答:4

当我想将一个新文件分成几个提交时,我可以使用git add -N <file>,然后使用git gui以交互方式分段。但是,当我在分期时犯了错误时,git gui不会让我取消单独的行,因为它是一个新文件(这对我来说似乎是个错误)。当然,我总是可以取消整个文件并重新开始,但我想知道是否有更有效的方法。

我正在使用git 1.7.5


为了澄清,这个问题特定于新的aka未跟踪文件!

git unstage
4个回答
7
投票

从命令行类型:

git reset -p

这将允许您使用标准命令行界面来管理帅哥,从索引中选择性地释放帅哥。这与git add -p相反。

UPDATE

好吧,当文件是新文件时,你似乎无法选择性地分阶段。鉴于git-gui和标准的git hunk编辑器都不允许这样做,它可能是不可能的。


1
投票

使用fugitive你可以很容易地做到这一点。只需调用:Gdiff命令,然后暂停和取消你想要的任何内容。您甚至可以直接编辑索引文件。当然,这个解决方案要求你对vimvimdiff相当舒服......


1
投票

我刚刚遇到了同样的问题:我刚刚提交了一个新文件,我想要取消该文件中的一些行,并将它们作为单独的提交。我解决的解决方案是:

  • 从添加新文件的提交开始
  • 删除要在源文件中取消暂停的行,暂存这些更改和git commit -m 'REVERTME'
  • 创建一个恢复最新提交的新提交:git revert HEAD
  • 使用git rebase -ifixup进行第一次新提交,并可选择使用reword进行还原提交。

0
投票

对此进行排序的另一种简单方法是从文件中删除除第一次提交中所需的一行之外的所有内容。暂存它然后添加回文件的其余部分。从那时起,你可以像平常一样登台

© www.soinside.com 2019 - 2024. All rights reserved.