就像从存储库的根文件夹添加一样

就像从存储库的根文件夹添加一样

这个问题困扰了我好几次。我在 GIT 存储库中打开了一个终端。我执行git status来查看存储库中的所有更改。然后我执行git add -Agit 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

相关内容