- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚刚在学习如何使用 git。所以,我创建了一个新的存储库,其中包含一个文件“foo.txt”。为了将其添加到版本控制中,我运行了 git add foo.txt
。然后,我对该文件做了一些更改,并运行了 git commit
。这似乎更新了存储库。
然后我对该文件做了一些进一步的修改。之后,我再次运行 git commit
。然而,这一次,它返回没有添加到提交的更改
。但是,如果我在运行提交之前运行 git add foo.txt
,它确实会进行更改。
为什么我似乎每次都必须 add
我的文件?我希望能够在更改后运行 git commit
,而不必告诉 git 我更改了哪个文件。
我必须手动指定要提交的文件是否正常?还是我做错了什么?难道我不能告诉 git 每次“foo.txt”改变时,我都希望将它添加到下一次提交中吗?
最佳答案
git add
不像 svn add
那样工作,它的目的不是“开始跟踪这个文件”。其目的是“为下一次提交暂存此内容”。
如果你碰巧在一个未跟踪的文件上运行它,git 将开始跟踪该文件,并在下一次提交时包含该文件的当前内容。它只是跟踪内容 - 它是一个要跟踪的新文件这一事实或多或少是添加文件内容的副作用。
如果您修改了跟踪文件,请使用 git add
将该更改的内容添加到您的下一次提交。
如果您随后再次修改文件,您将需要再次git add
以暂存您所做的新更改。
您还可以使用 git add -p
添加部分更改。这将允许您仅暂存对文件所做的一些 更改,但不能添加其他更改。 (它会将更改分块,类似于 diff
的方式,并询问您是要添加还是忽略每个 block 。)
这一切都是为了灵 active 。您可以非常精细地控制将哪些更改添加到提交中,完全按照您的喜好。或者,您可以 git commit -a
并立即清除所有内容,如果您希望那样的话。
关于Git 添加 : Why do I have to manually specify which files to commit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33394431/
我是一名优秀的程序员,十分优秀!