我正在尝试编写 .gitignore 文件。我希望能够预览执行 "git add -u" 命令后将要添加的所有内容。这可行吗?或者,如果我运行 "git add -u",有一些我不想要的东西被添加了,我能撤消整个操作吗?然后我会调整我的 .gitignore 文件并重复尝试。
谢谢。
我正在尝试编写 .gitignore 文件。我希望能够预览执行 "git add -u" 命令后将要添加的所有内容。这可行吗?或者,如果我运行 "git add -u",有一些我不想要的东西被添加了,我能撤消整个操作吗?然后我会调整我的 .gitignore 文件并重复尝试。
谢谢。
git add -n
这是 --dry-run
的简短开关 :)git add -n .
如果你错误地添加了应该被忽略的文件,并且在干预运行中没有发现它,那么你只需要使用:
git reset HEAD --
这基本上会取消暂存的文件。git add -i --dry-run
”(手册)不会进行“干运行”,这令人惊讶。选项的组合已经教会我们出错了。
请参阅提交a1989cf(2021年5月5日),作者为Øystein Walle (Osse
)。
(由Junio C Hamano -- gitster
--于2021年5月14日合并至提交47fa106)
交互式机器不遵循
add
:如果同时给出--dry-run
和--interactive
,则退出签名作者:Øystein Walle
--dry-run
。如果两个标志都传递,则适当地停止运行。
同时,Git 2.34(2021年第四季度)起,使用 "git add --dry-run
"(man) 命令时将不再创建新的blob和tree对象。
请查看 提交 e578d03 (2021年10月12日) 由 René Scharfe (rscharfe
) 提交。
(由 Junio C Hamano -- gitster
-- 合并于 提交 6ffb5fc, 2021年10月25日)
add
:不要使用--dry-run写入对象报告人:git.mexon@spamgourmet.com
签署人:René Scharfe
当使用选项
--dry-run/-n
时, "git add
"(man) 不会更改索引,但仍会写出新的对象文件。
只哈希后者而不是写入,以使运行尽可能干燥。
我发现
git add -n .
同时也显示了修改过的文件
git ls-files --others --exclude-standard
不行。
目前来说,第二种方法对我来说是首选的方式进行.gitignore的预览/测试。
我在帖子的评论中也发现了一些人反对使用'add .',而更喜欢使用'add -u'。
我也尝试过。
git add -u -n
但根据我的经验,这只显示修改过的文件。
https://dev59.com/LG865IYBdhLWcg3wduaH#10888722
顺便说一下:在这种情况下,git子模块对我来说似乎是一个额外的用例(不知道是否可以通过“git ls-files”的其他开关来反映这一点)