Git中的文件既可以上传也可以不上传?

Mar*_*son 13 git version-control

在处理另一个文件时,我编辑README.md然后运行git add README.md.在进行git提交时,我发现这README.md两者都在"要提交的更改"和"未提交的提交更改"中.

这有意义吗?.git我可以在哪里查看此文件的权威状态?

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   README.md
#       modified:   utils/arrterm
#
# 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:   README.md
Run Code Online (Sandbox Code Playgroud)

Man*_*uer 16

这意味着您所做的部分更改将分别用于提交,而部分更改则不会.

如果你跑,你可以检查什么是上演的

git diff --staged -- README.md
Run Code Online (Sandbox Code Playgroud)

并检查运行中未停止的内容

git diff -- README.md
Run Code Online (Sandbox Code Playgroud)

大多数版本控制系统通常仅存储两个状态之间的变化.git的工作方式,当您对文件进行多次更改时,您必须添加/标记它们中的每一个,以成为一组更改(即提交)的一部分.使用时git add自动完成.

但是,这并不是您将所有个人更改(帅哥)添加到"索引"的唯一方法.例如,您可以对同一个文件进行多次更改,并在不同的提交中提交它们,或者只对提交添加特定的更改.例如,要明确地向您的"索引"添加一些更改,而不是其他更改,您可以通过使用git add -p仅添加更改的一些"黑客"(组)而不是整个更改列表本身来实现.

这里发生的事情是你README.md staging(git add)之前所做的更改将在staged中显示,并且你 staging 之后所做的任何更改README.md将显示为你已经上面的非分页.


Von*_*onC 7

在.git中,我可以查看此文件的权威状态吗?

用途git diff:

  • git diff -- yourFile 将为您提供尚未上演的更改(尚未添加到索引中)
  • git diff --cached -- yourFile 将为您提供已添加到索引中的更改.

在" 更改,而不是文件 "中查看更多信息:

大多数版本控制系统都使用文件.您将文件添加到源控件,系统将跟踪此时的更改.

Git专注于文件的更改,而不是文件本身.
一个git add file命令不会让Git将文件添加到资料库,但是要注意该文件的当前状态为它稍后提交.

另请参阅" git add -p:您尚未使用的最强大的git功能 "


请注意,git status -v -v将很快(Git 2.3.4,2015年第2季度)向您显示两个差异(分阶段和非分阶段),可能列出同一文件的不同差异.

请参阅" 在git diff中显示暂存和工作树? ".