我对版本控制还很陌生,也不太了解如何将代码从本地存储库推送到 GitHub 上的远程存储库。过去,我大多只是暂存所有文件以供提交,并指定我不想在 .gitignore 文件内的远程存储库中显示的文件。但是,我想知道是否可以通过选择性地暂存我想要添加或更新的文件来完成同样的任务?
我希望我在这里的措辞是有意义的。我试图寻找这个问题的现有答案,但找不到明确的结论。谢谢。
git add FileA
只会上演FileA
;如果您从那里提交,那么对 FileB
的更改将不会出现在该提交中。然而,虽然这不是一个万无一失的方法 - 有人可能不知道 FileB
不应该被提交,或者他们可能会忘记,或者其他什么,然后 FileB
包含在存储库中及其所有非公开细节。
如果
FileB
位于 .gitignore
中,那么它不会出现在任何提交中(即使您运行 git add FileB
)。这里最大的问题是 .gitignore
不具有追溯力 - 如果 FileB
已经在存储库中被跟踪,那么将其添加到 .gitignore
将不会产生任何效果。 (这就是为什么它不被称为.gitforget
。)
在实践中,我认为
.gitignore
对你来说将是一件更好的长期事情,哪怕只是因为它不依赖人类来做正确的事情。不过,您仍然应该考虑 git add FileA
(或要添加的以空格分隔的文件列表)以进行更有针对性的提交。