预览“git add -u”?

时间:2012-02-05 21:18:15

标签: git

我正在尝试编写.gitignore文件。如果我要运行“git add -u”,我想预览将要添加的所有内容。那可能吗?或者,如果我运行“git add -u”,并添加了一些我不想要的东西,我可以撤消整个事情吗?然后我会再调整我的.gitignore并重复一遍。

由于

3 个答案:

答案 0 :(得分:21)

我认为你在寻找:

git add -n

..这是--dry-run短开关:)

编辑:从存储库的根目录,尝试:

git add -n .

如果您错误地添加了应该被忽略的文件,并且您没有在干运行中捕获它,那么您只需使用:

git reset HEAD --

..这基本上会取消暂存文件。

答案 1 :(得分:0)

请注意,相同的预览不适用于交互式添加。

Git 2.32(2021 年第 2 季度)现在更加清晰:“git add -i --dry-run(man) not dry-run很意外。
选项的组合已经教会了错误。

请参阅 commit a1989cfØystein Walle (Osse)(2021 年 5 月 5 日)。
(于 2021 年 5 月 14 日在 Junio C Hamano -- gitster --commit 47fa106 合并)

<块引用>

add:如果同时给出 --dry-run--interactive,则死亡

签字人:Øystein Walle

<块引用>

交互机制不服从--dry-run
如果两个标志都通过,则适当地死亡。

答案 2 :(得分:0)

我发现了

git add -n .

同时显示修改过的文件

git ls-files --others --exclude-standard

没有。

现在对我来说,第二个是预览/测试 .gitignore 的首选方式。

我还在帖子中发现了一些不鼓励使用“添加”的评论。更喜欢 'add -u' 。

我也试过

git add -u -n

但根据我的经验,这仅显示修改后的文件。

https://stackoverflow.com/a/10888722/2623045

顺便说一句:在我看来,git submodules 在这种情况下是一个额外的用例(不知道对 'git ls-files' 的额外切换是否可以反映这一点)