2014-02-18 70 views
4

這裏我的主要問題是iti是否有意義,只需始終執行git commit -am而不是git add。其次是git commit -m瞭解何時使用git commit -m和git commit -am

據我所知,-am表示它將添加所有修改後的TRACKED文件。因此,在我沒有添加任何新文件的情況下,僅僅運行git commit -am而不是git add會有意義,但是這會被認爲是最佳做法:

git add

git commit -am "message" 

不管怎樣?

甚至代替:

git add -A 

git commit -am "message" 

回答

6

將它被認爲只是做最佳實踐:

git的補充。

git的承諾-am 「消息」

呢?

不,沒有這樣的「最佳實踐」。只要你不想包含任何未跟蹤的文件,git add + git commit -mgit commit -am將完全相同。

在有些情況下,你需要使用兩種情況git add

    如果要包括未跟蹤文件
  • ,並
  • ,如果你不希望提交更改

一切第二點特別是許多人推薦不要總是使用的原因commit -a: 在處理了一段時間的代碼之後,工作警察中經常會有幾種不同類型的更改y(您正在使用的錯誤修正,一些無關的重命名,以及一些用於調試的臨時更改...)。 commit -a風險太大,一個提交 - 在這些情況下選擇性使用git add更好。

但是,如果您確定要執行您更改的所有內容,請繼續並使用git commit -a

+0

感謝您的澄清!我有時需要這個「啊!」時刻。我正在開發一個非常小的項目,所以當我進行提交時,通常是從最後一次提交改變過來的每一件事的提交,在這種情況下,我厭倦了git add -A git commit -m ,但想要進入更好的習慣。 – appsecguy

3

我不小心做-am我通常避免這些天犯下足夠的代碼。 git add -u將執行與git commit -a相同的更改,然後您可以執行git diff --cached以確保要提交它們。我的一些同事甚至總是做git add -p,所以他們必須在每個差異均勻分階段之前查看差異。

如果我知道我所做的更改很少,那麼爲方便起見,我仍然會使用git commit -am,但是可能值得擺脫這種默認習慣。

3

如果你保持你的.gitignore目前,然後git commit -am是一個完美的做事方式。這是git add -uA <nopattern> ; git commit -m "message"的快捷方式。

這是git,最好的做法是主觀的。我更喜歡手動添加文件,以便我可以隨時查看更改,但您可能不需要這些。