为什么git commit不保存我的更改?
我做了这样的git commit -m "message"
>git commit -m "save arezzo files" # 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: arezzo.txt # modified: arezzo.jsp # no changes added to commit (use "git add" and/or "git commit -a")
但事后,当我做git status
它显示相同的修改后的文件:
>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: arezzo.txt # modified: arezzo.jsp # no changes added to commit (use "git add" and/or "git commit -a")
我究竟做错了什么?
正如消息所说:
没有更改添加到提交(使用“git add”和/或“git commit -a”)
Git有一个“暂存区”,在提交之前需要添加文件,你可以在这里阅读它的解释 。
对于您的具体示例,您可以使用:
git commit -am "save arezzo files"
(注意标志中的额外a
,也可以写成git commit -a -m "message"
– 两者都做同样的事情)
或者,如果你想更多地select你添加到提交的内容,你可以使用git add命令将相应的文件添加到临时区域,并使用git status来预览将要添加的内容(记住要注意所用的措辞)。
你也可以在git文档页面find关于如何使用git的一般文档和教程,它将给出关于分段/添加文件概念的更多细节。
另一件值得了解的事情是交互式分段 – 这允许你将一部分文件添加到分段区域,所以如果你做了三个不同的代码改变(相关但不同的function),你可以使用交互模式来分割依次更改和添加/提交每个部分。 有这样小的具体提交可能会有所帮助。
您没有添加更改。 要么通过专门添加它们
git add filename1 filename2
或添加所有更改(从项目的根path)
git add .
或使用简写-a
在提交时:
git commit -a -m "message".
你应该做
git commit . -m "save arezzo files"
我把我在git源代码下的一个小的子项目复制到另一个项目中,忘了删除.git文件夹。 当我去提交了与上面相同的消息,并且无法清除,直到我删除.git文件夹。 有点傻,但值得检查的是,在没有提交的文件夹下没有.git文件夹。
你可以做一个:
git add -u -n
要检查你修改了哪些文件并将要添加(干运行:-n选项),然后
git add -u
只添加修改的文件
也许一个明显的事情,但…
如果您对索引有问题,请使用
git gui
您可以很好地了解指数(中转区域)的实际工作情况。
另一个帮助我理解索引的信息来源是Scott Chacons“Getting Git”第259页,然后转发。
我开始使用命令行,因为大多数文档只显示…
我认为git gui和gitk实际上让我工作得更快,我摆脱了像git pull之类的不良习惯…现在我总是先取…看看在我合并之前新的变化是什么。
我发现这个问题出现在我做了一个git add .
在我的.gitignore
文件所在的子目录下 (我的仓库的主目录,可以这么说)。 尝试改变目录到最上面的目录并运行git add .
接着是git commit -m "my commit message"
。
之所以发生这种情况是因为你有一个文件夹已经被git跟踪的另一个文件夹中的git跟踪。 例如,我有一个项目,我添加了一个子文件夹。 在我把一个放在另一个里面之前,他们都被git跟踪了。 为了停止跟踪里面的一个,find它,并删除git文件
rm -rf .git
在我的情况下,我有一个wordpress应用程序,我添加的文件夹是一个主题。 所以我不得不去主题根,并删除git文件,以便整个项目现在将由父,wordpress应用程序跟踪。
我有一个问题,即使在发出git add .
之后,我也在做commit --amend
git add .
它仍然没有工作。 原来我做了一些.vimrc
自定义,我的编辑器不能正常工作。 修复这些错误,以便vim
返回正确的代码来解决问题。