仅将文件夹中修改的文件添加/暂存的git命令

9
我修改了一个文件夹及其子文件夹中的几个文件。我可以递归添加顶层文件夹,但是这样会有多个未被跟踪的子文件夹,所以每次执行递归添加来暂存更改时,我必须使用git rm -r --cached来取消跟踪子文件夹。有没有更好的方法只暂存在git状态中显示的修改,而不追踪已明确未跟踪的文件?
元问题:git add意味着两个(或更多)不同的操作真的是一个好主意吗?在这种情况下,如果用于跟踪文件的命令(git add)与用于暂存修改的命令(git add)不同,则我一开始就不会遇到这个问题。
2个回答

23

git add -u 只添加修改过的文件。还要考虑将不想被跟踪的文件添加到 .gitignore 文件中。


1
额外信息:-u--update 的缩写,它不仅会暂存文件的修改,还会暂存文件的删除。 - Steven Liekens
git add . 会执行同样的操作,但会忽略已删除的跟踪文件。 - EntangledLoops
git add . 不会开始跟踪未明确忽略的未跟踪文件吗? - Kevin Glasson

5
我认为你需要的是:
git commit -a

这将仅允许您提交更改。

1
这不仅仅是暂存文件,它还创建了一个提交。这不是被要求的。 - EntangledLoops

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接