如何使用repo子目录暂存git中的所有更改

时间:2012-02-26 22:19:38

标签: git

因此,对git进行所有更改的命令是git add -A

有没有办法从存储库子目录中执行此操作,并捕获存储库中任何位置的所有更改,而无需将目录更改回repo根目录?

示例:

$pwd
/reporoot/

修改文件:/ reporoot / a-file

$cd /a-subdir

$git 'magic variation of add -A which I'm looking for'

将对/ reporoot / a-file的更改进行暂存。

我发现我经常在终端的一个地方,但是在IDE的其他地方编辑文件,所以这个问题的答案将是避免大量cd的有用方法。

2 个答案:

答案 0 :(得分:8)

使用以下内容(仅适用于较新版本的Git):

git add $(git rev-parse --show-toplevel)

您可能希望create a Git alias以便更轻松地运行它。

请注意,如果您计划提交,执行以下操作将暂存已在工作树中的所有已更改文件(即,不是未跟踪的文件):

git commit -a

答案 1 :(得分:7)

您正在寻找 git add -u,请看这里的好解释 Difference between "git add -A" and "git add ." 或手册 http://git-scm.com/docs/git-add 。如果你打算下一步提交,请使用Andrew提到的git commit -a