我試圖圍繞着Git的錯綜複雜的頭部。爲什麼我必須使用「git commit -a」而不是「git commit」?
我使用「git clone [url here]」從GitHub中取出了一個存儲庫。
我做了一些改變,試圖用「git commit」提交它們。這似乎並沒有將更改推送到我的本地存儲庫(在本地目錄「.git),並且它建議我使用」git commit -a「來代替。
我想知道爲什麼我必須追加「-a」 到 「git的承諾」,並在什麼混帳
我試圖圍繞着Git的錯綜複雜的頭部。爲什麼我必須使用「git commit -a」而不是「git commit」?
我使用「git clone [url here]」從GitHub中取出了一個存儲庫。
我做了一些改變,試圖用「git commit」提交它們。這似乎並沒有將更改推送到我的本地存儲庫(在本地目錄「.git),並且它建議我使用」git commit -a「來代替。
我想知道爲什麼我必須追加「-a」 到 「git的承諾」,並在什麼混帳
-a
,--all
告訴命令自動階段已修改和刪除,但新的文件,你還沒有告訴不受影響git的文件。
Git有一個臨時區域。默認情況下,git commit
僅提交添加到該暫存區域的數據。 -a
開關提交所有未提交的工作副本本身。
暫存區域的想法是,您可能不想一次提交所有更改。如果是這種情況,你想要提交的文件是git add
,或者如果你想要它更細化,你只需要git add -p
並選擇一個文件內的一些改變來提交。
有一個很好的解釋以及圖像顯示如何,它基本上在GitHub上的Git教程作品:http://web.archive.org/web/20130519130755/http://learn.github.com/p/normal.html
git commit -a
「舞臺」 和 「提交」 之間的區別是短手:
git add file.txt
git commit file.txt
這只是將新文件提交到存儲庫的一種更簡單的方法。(文件必須先「添加」纔可以承諾)
你不需要。
-a
選項要求git commit
自動將所做的所有更改添加到存儲庫中的文件。
你並不總是那麼想。特別是因爲有時你想做出多個承諾來區分變更組。當你想要選擇要添加的內容時,通常在使用git add
之前添加更改。
git -a commit
顯然有我們必須做兩兩件事等同於
git add .
git commit
,如果我們要提交修改後的文件或未修復的文件
第一個是「分段」 第二個是「提交」
分段是任何提交旅程的中間階段,當然它是可選的。 暫存過程僅用於防止意外提交。一般而言,在提交前,如果我們輸入git commit
,那麼所有被跟蹤文件中的任何新的未跟蹤文件或修改都需要執行,然後再進行提交。
簡單來說,升級的主要目的是防止意外提交。如果使用分段進程,在使用git checkout filename
提交之前放棄任何更改都很方便。
看看這個頁面:http://git-scm.com/about/staging-area
如果你真的認爲你不需要升級,就可以使用git commit -a
它只會犯被跟蹤文件中的所有當前未跟蹤文件和修改。
總是建議經歷分期,因爲您可以放棄任何您不想在當前提交中進行的更改。如果您使用git commit -a
,則不必使用git add filename
進行分段
+1用於明確提及暫存區域並對其進行解釋。 –