1. 程式人生 > >git commit命令

git commit命令

git commit 主要是將暫存區裡的改動提交到本地的版本庫。每次使用git commit 命令我們都會在本地版本庫生成一個40位的雜湊值,這個雜湊值也叫commit-id。

commit-id在版本回退的時候是非常有用的,它相當於一個快照,可以在未來的任何時候通過與git reset的組合命令回到這裡。

 

1. git commit -m "message"

-m 引數表示可以直接輸入後面的message,如果不加 -m 引數,那麼是不能直接輸入message的,而是會呼叫一個編輯器一般是vim來讓你輸入這個message。

當我們想要提交的message很長或者我們想描述的更清楚更簡潔明瞭一點,我們可以使用這樣的格式:

2. git commit -a -m "message"

-a 引數表示,可以將所有已跟蹤檔案中的執行修改或刪除操作的檔案都提交到本地倉庫,即使它們沒有經過git add新增到暫存區。

注意,新加的檔案(即沒有被git系統管理的檔案)是不能被提交到本地倉庫的。建議一般不要使用-a 引數,正常的提交還是使用git add先將要改動的檔案新增到暫存區,再用git commit 提交到本地版本庫。

3. git commit --amend

git commit --amend 也叫追加提交,它可以在不增加一個新的commit-id的情況下將新修改的程式碼追加到前一次的commit-id中。

1)假如現在版本庫裡最近的一版正是我們想要追加進去的那版,此時是最簡單的,直接修改工作區程式碼,然後git add,之後就可以直接進行git push到伺服器,中間不需要進行其他的操作如git pull等。

2)如果現在版本庫裡最近的一版不是我們想要追加進去的那版,那麼此時我們需要將版本庫裡的版本回退到我們想要追加的那一版。

      2.1> 第一種,如果我們知道我們需要的版本與現在最近的版本中間隔著 n 個提交,那麼我們可以直接使用git reset --hard HEAD~n 命令,執行完後執行git log -1 命令我們會發現現在版本庫裡最近的一版就是我們需要的那版,此時再在工作區直接修改程式碼,改完之後進行git add,再執行本git commit --amend命令,之後git push。

      2.2> 第二種,如果我們不知道我們需要的版本與現在最近的版本中間隔著 n 個提交,那麼我們可以使用git log來檢視版本庫中的commit-id,找到我們需要的commit-id後,在終端中執行git reset --hard commit-id,執行完後執行git log -1 命令我們會發現現在版本庫裡最近的一版就是我們需要的那版,此時再在工作區直接修改程式碼,改完之後進行git add,再執行本git commit --amend命令,之後git push。

 

4. git commit --help

檢視幫助