在此先感谢您的阅读-对于Stackoverflow社区来说,这可能是一个非常琐碎的问题,但会让我发疯。
我今天下午用git做一些常规工作时遇到了一个非常奇怪的问题。
在文本编辑器中对文件进行了一些更改之后,我去了终端准备并提交。尝试使用git add(像往常一样)暂存文件后,我去提交git commit -m终端,向我吐出来:
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
我再次尝试了分期(因为作为一个好人,我决定再次尝试并期望得到不同的结果),并且产生了相同的结果。我检查了git status:
#On branch master
#Changes not staged for commit:
#(use "git add <file>..." to update what will be committed)
#(use "git checkout -- <file>..." to discard changes in working directory) modified: ../../Round 1/R1C3/R1C3.py
Run Code Online (Sandbox Code Playgroud)
在试管上四处搜寻之后,我发现可以用其他各种方式来暂存文件,但不能使用git add。我可以使用git add -A或git add -u或使用交互式升级阶段。
困惑不解并且不真正理解我的注册表为什么git add不起作用,我努力使用git add -A。这个故事很奇怪。在我的机器上重新启动后(2011 Macbook Air运行Mavericks),git add在进行一些更改后,我再次尝试对同一文件执行了正常操作,然后猜怎么着?有效。所以我继续。
现在,不久之后,我又遇到了同样的问题。git add将不起作用(相同目录)。
有人知道我在做什么错吗?由于上述替代方案,这不是一个很大的问题,但我想了解为什么会这样。特别是因为这在过去一直对我有用,而今天,它坏了:(
**注意:我计算机上其他受版本控制的项目似乎没有受到影响。
git add R1C3.py
git status
#On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: ../../Round 1/R1C3/R1C3.py
# no changes added to commit (use "git add" and/or "git commit -a")
git add -A
git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: ../../Round 1/R1C3/R1C3.py
#
Run Code Online (Sandbox Code Playgroud)
执行此操作时,git add它应在与文件相同的目录中运行,或将相对路径传递给文件。由于该文件位于父目录中,因此git add将找不到该文件。就您而言,您应该cd ../../Round 1/R1C3/然后运行git add R1C3.py。
git add -A之所以起作用,是因为它暂存了存储库中的所有文件,而无视目录中的位置。