我是 Git 新手,在本地使用 Git Bash。我在提交时遇到问题。
据我所知,只有在通过 add
暂存更改后才会提交更改(除非您使用 commit -a
)。但相比之下,我面临以下场景:
我添加一个文件test.txt:git add test.txt
之后,我在本地对此文件进行了一些更改,而无需进一步添加。
git status
向我显示 - 仍然如预期 - 要提交的更改和未暂存提交的更改。
到目前为止一切顺利,但现在变得令人恼火:我执行了 git commit -m "commit only staged Changes"test.txt
但结果是,我的本地更改也被提交了。
另外,git status
现在只说“没有什么可提交的,工作树干净”。
任何人都可以向我解释一下,需要做什么才能只提交分阶段的更改(我实际上理解为默认行为......)? 预先非常感谢!
最佳答案
当您给出特定的文件名时,如
git commit [options] test.txt
然后 git 将放弃其默认行为,并立即提交对该文件的所有更改。在此模式下,它不会提交您已经暂存的其他更改。
如果您只想提交暂存的更改,只需省略文件名即可。
git commit [options]
请注意,无法仅提交对单个文件的暂存更改,同时跳过对同一文件的未暂存更改和对其他文件的暂存更改。您可以提交所有暂存的更改(无论它们位于什么文件中),也可以将所有更改(暂存或未暂存)提交到一个或多个文件。但是,您可以在提交之前取消暂存对其他文件的更改,使用 git restore <filename>
(如果您的 Git 版本足够新)或 git reset <filename>
.
关于Git 提交未添加的本地更改 - 我怎样才能阻止这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62622625/