我正在尝试编写.gitignore文件。如果我要运行“git add -u”,我想预览将要添加的所有内容。那可能吗?或者,如果我运行“git add -u”,并添加了一些我不想要的东西,我可以撤消整个事情吗?然后我会再调整我的.gitignore并重复一遍。
由于
答案 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' 的额外切换是否可以反映这一点)