我正在为我的dotfiles创建一个repo,它在我的机器上分发。我选择了大多数dotfiles的目录并在那里创建了git repo。现在我需要添加不在这个git repo目录中的dotfiles。
我以为我找到了办法并做了
git --work-tree=/ add /another/path/.vimrc
该文件已成功添加并作为第一次提交推送。但是,后来我改变了文件。当我做git commit -m 'edit .vimrc'
时,我得到了
On branch master
Your branch is up-to-date with 'origin/master'.
...
no changes added to commit
为什么会这样?我是否错误地添加了外部文件?
答案 0 :(得分:1)
--work-tree=/
选项会在单个命令git ... add /another/path/.vimrc
的持续时间内更改工作树暂时。
添加到存储库的内容是名称的其余部分。因此,您的存储库现在有一个名为another/path/.vimrc
的文件。
如果你跑了:
git --work-tree=/another/path add .vimrc
您可以将名为.vimrc
的文件添加到您的存储库。
稍后,另一个Git命令如:
git checkout <revision> -- another/path/.vimrc
或:
git checkout <revision> -- .vimrc
从指定的修订版本中将文件(another/path/.vimrc
或.vimrc
)提取到当前工作树。当前工作树是您使用--work-tree=
指定的此时的任何内容,或默认情况下,基于git rev-parse --show-toplevel
的隐含工作树。