我是git的新手,但我的理解是,您必须先使用git add
将修改过的文件添加到索引中,然后才能使用git commit
将其提交到存储库。我刚刚修改了几个文件并在它们上键入git commit
,忘记将它们首先添加到索引中,并惊讶地发现它们已经提交了。我在配置中搞砸了什么才允许这种情况发生?
我使用git版本2.5.0.windows.1。
我没有使用git commit -a.
我尝试了几种不同的方法。提交修改后的(非分段文件)以下结果:
git commit file1
和git commit .
。
我刚刚尝试git commit
没有参数,这次命令确实停止并告诉我需要先暂存文件。
我知道提交正在进行,因为我运行git status
并且可以看到文件不再被修改。这些是我在这个项目中一直在做git add
和git commit .
的文件,因此我认识到它们在被修改时与不同阶段的看法有何不同。
我现在已经到了我已经在另一个存储库中完成了足够的测试,我怀疑它有一些配置设置。这就是我所拥有的:
$ git config --list
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
diff.tool=bc
difftool.prompt=false
difftool.bc.trustexitcode=true
difftool.bc.cmd='c:/program files (x86)/beyond compare 4/bcomp.exe' $LOCAL $REMOTE
merge.tool=bc
mergetool.prompt=false
mergetool.bc.trustexitcode=true
mergetool.bc.cmd='c:/program files (x86)/beyond compare 4/bcomp.exe' $LOCAL $REMOTE $BASE $MERGED
rerere.enabled=false
core.trustctime=false
core.editor='C:/Program Files (x86)/Notepad++/notepad++.exe' -notabbar - multiInst
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
gui.wmstate=normal
gui.geometry=887x427+25+25 171 192
答案 0 :(得分:1)
当你在commit命令中指定路径时,git忽略任何索引的更改,并使用他们当前的工作树内容提交这些路径(这些内容也会被上传,也称为已添加索引)。由于某种原因,必须已经跟踪路径。