我是git新手,来自SVN世界。到目前为止,它看起来更有用,但我仍在摸索中。每次我想提交时,我是否必须将文件添加到git?
目前,我的工作流程如下:
进行更改> git add。 > git commit>输入日志信息
我不明白为什么我似乎必须在提交之前添加所有文件。他们已经受版本控制了?为什么git commit告诉我没有对提交添加任何更改,还指出我已经修改了文件?它说“已更改但未更新:”。这是什么意思??
很抱歉,如果这是很容易的,我觉得我缺少一些首要一点
我是git新手,来自SVN世界。到目前为止,它看起来更有用,但我仍在摸索中。每次我想提交时,我是否必须将文件添加到git?
目前,我的工作流程如下:
进行更改> git add。 > git commit>输入日志信息
我不明白为什么我似乎必须在提交之前添加所有文件。他们已经受版本控制了?为什么git commit告诉我没有对提交添加任何更改,还指出我已经修改了文件?它说“已更改但未更新:”。这是什么意思??
很抱歉,如果这是很容易的,我觉得我缺少一些首要一点
这样就可以通过编辑不同的提交。如果你只是想现在提交这些文件,下一个现在提交,然后将这些文件旁边,在第二承诺,你可以这样做:
git add files_under_one_topic
git commit -m "this is about one thing"
git add files_left_over_to_commit_about_a_completely_different_topic
git commit -m "this is about another thing."
啊所以就是这样! – Hamy 2010-07-01 19:50:55
它很糟糕她甚至比那。使用'git add -p',你可以在文件中进行一些修改,但不能修改其他文件。 – Novelocrat 2010-07-01 20:11:56
哇。这真的很强大。很高兴知道这是可能的,它可能会在我需要它的几次时变得非常方便! – Hamy 2010-07-02 19:50:29
你不能在你的意识中添加文件把它们置于git控制之下,但是你将它们添加到更改列表中。一些其他SCM,如perforce也可以做到这一点。这对于构建您尚未准备好提交的不同组更改很方便,但您希望在单独的块中进行提交。
你可以通过简单的做git commit -a
来承诺 - 它会提交git知道的一切,就像svn commit
一样。 (PS。既然你是来自svn世界,我会提到另一个让我回想一下的问题 - 当你git diff
时,它只会显示你当前状态和如果您在添加完所有更改的文件(例如git add -u
)后立即运行git diff
,即使有差异要提交,您也会看到一个空的差异! )
啊,谢谢PS!这绝对是我一直在努力的事情! – Hamy 2010-07-01 19:50:34
Git通过使用“暂存”区域来工作,在此区域中,您准备将要捆绑在一起作为提交的内容。因此,您决定要提交哪些更改(例如全部或子集),将其添加到暂存区域,然后确定暂存区域中的内容。当您调用“git status”时,它会显示已添加到暂存区域的内容(即“要提交的更改”),git正在跟踪的文件中已修改的内容(即已更改但未更新的文件“ )以及之前从未添加过的任何新文件(例如未扫描的文件)
如果您只想提交已更改的内容,但不包含新创建的文件,则可以使用git commit -a - m“评论修改后的文件已经在源代码管理下了”
好问题我发现这个也很混乱,很明显,你没有“添加”到项目中,你添加到提交! – Kokodoko 2016-03-09 12:01:42