2017-09-14 109 views
0

我注意到,git的允許提交一個跟蹤文件(在本地修改)的情況下直接使用分段,例如:Git的承諾,而分期

$ git status -s . 
M myfile.txt 
$ git commit myfile.txt -m"1 way" 

是它更好地使用,取而代之的是,「經典」兩腳步 ? :

$ git add myfile.txt 
$ git commit myfile.txt -m"2 way" 

回答

1

嘗試你還沒有告訴Git的約不受影響git commit -a -m [message]

-a

告訴命令自動階段已修改和刪除的文件,但新文件。

不適用於新文件,您仍然需要明確地添加它們。

這只是階段,接着是在一個單一的步驟提交。我覺得這很方便,因爲使用status時可以看到所有更改的狀態,我們通常會進行小的增量提交。

4

是它更好地使用,取而代之的是,「經典」兩個步驟?

git commit說明文檔中提到不低於5種方式通知Git你想要什麼,在未來,包括承諾:

添加可以通過多種方式來指定的內容:

  1. 通過使用git add在使用commit命令之前遞增地「添加」對索引的更改(注意:即使修改後的文件也必須「添加」);
  2. 使用git rm從工作樹和索引中刪除文件,再次使用commit命令之前;
  3. 將文件列出爲提交命令的參數(沒有--interactive--patch開關),在這種情況下,提交將忽略在索引中執行的更改,而是記錄列出文件的當前內容(必須已知GIT);
  4. 通過使用-a開關與commit命令自動「添加」從所有已知的文件(即在索引已經列出即所有文件)的變化,並在索引自動「RM」文件已經從被除去的工作樹,然後執行實際提交;
  5. 通過使用--interactive--patch開關,使用commit命令可以在完成操作之前,逐個決定除索引中的內容之外哪些文件或塊應該是提交的一部分。請參閱git-add的「交互模式」部分,瞭解如何操作這些模式。

有這麼多的選擇,不是因爲他們中的一些是「好」,而另一些「更好」。 ,Git提供了這麼多的選擇,讓你你喜歡的一個,或者最適合在特定情況下的一個。

例如,如果您發現修改後的文件應該是之前提交的一部分(但您忘記提交它),並且索引當前包含爲下一次提交準備的文件,請使用第一個命令問題(上面列表中的選項#3)允許您僅提交該文件而不更改索引。通過這種方式,您錯過的文件將跳過該行,並在之前的提交後立即落實到它所屬的位置,而不會干擾您正在準備的下一個提交。

+0

請注意,'git commit '有兩種口味:'git commit - 只有'和'git commit --include '。 Git真正做的是使用*臨時*索引/分段區域; '--only'表示「從HEAD'設置臨時文件,然後將列出的文件放入其中」,「--include」表示「從當前索引設置臨時文件,然後將列出的文件放入其中」。 – torek