这个问题困扰了我好几次。我在 GIT 存储库中打开了一个终端。我执行git status
来查看存储库中的所有更改。然后我执行git add -A
,git commit -m "Some text"
并将git push
所有内容推送到 GitHub。
但是......我没有意识到我的终端的工作目录不是存储库的根目录,所以git add -A
实际上不是提交所有更改git status
告诉我的,仅对终端工作目录内的文件的更改。
我怎样才能git add
在 GIT 存储库中(不一定将根目录作为工作目录)添加全部整个存储库的变更?
答案1
您可以使用git add -A :/
。
以冒号开头的路径规范告诉 git,它应该从存储库的根目录而不是当前目录解释该路径规范的其余部分。后面跟着一个斜杠,它将引用存储库的根目录,从而git add
添加所有更改。
这似乎需要 git 1.7.6 或更新版本。
答案2
自从我的其他答案需要较新版本的 git,这里有一个替代方案,希望可以与旧版本兼容。
扩展名以感叹号开头的别名被视为单独的 shell 命令,并且它们被定义为在存储库的顶层执行。因此,您可以定义这样的别名并使用它来代替git add
:
git config --global alias.addroot '!git add'
git addroot -A
或者您可以将-A
选项包含在别名中。
答案3
git commit -a -m commit_msg
将执行您想要的操作。请注意,使用此命令时,标志会执行添加操作,因此在提交之前-a
不要执行单独的操作。git add