Git 总是忘记当前目录

Git 总是忘记当前目录

我有一个名为 git 存储库myscripts/。其中myscripts/有子目录perl/python/ruby/。出于某种原因,当我在其中一个子目录中编辑代码时,Git 会忘记该子目录是存储库的一部分。

$ cd myscripts/
$ cd perl/
$ vi hello.pl
...
$ git commit -a
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   ./
$ git add .
$ git commit -a

我必须一遍又一遍地这样做,但我不知道为什么。

答案1

git commit当你运行指数。索引包含当前 HEAD,以及您使用git add或所做的任何更改git rm

但是,git commit确实接受了-a切换。手册页关于这个开关:

告诉命令自动暂存已被修改和删除的文件,但你尚未告诉 git 的新文件不会受到影响。

这意味着当你运行 时git commit -a,Git 将仅提交对当前 HEAD 中存在的文件的更改。

因此,您必须git add对要跟踪的每个文件或目录至少运行一次:

$ cd myscripts/
$ cd perl/
$ vi hello.pl
...
$ git add .               # Add each file in this directory to the index
$ git commit              # Commit this version of hello.pl
$ vi hello.pl             # Edit hello.pl some more
... edit some more ...
$ git commit -a           # Commits the changes to hello.pl

相关内容