1. 程式人生 > >Git commit 常見用法

Git commit 常見用法

Git commit

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

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

   1.1 git commit -m “message”

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

   message即是我們用來簡要說明這次提交的語句。還有另外一種方法,當我們想要提交的message很長或者我們想描述的更清楚更簡潔明瞭一點,我們可以使用這樣的格式,如下:

        git commit -m ‘

        message1

        message2

        message3

        ’

    1.2 git commit -a -m “massage”

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

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

    1.3 git commit --amend

            如果我們不小心提交了一版我們不滿意的程式碼,並且給它推送到伺服器了,在程式碼沒被merge之前我們希望再修改一版滿意的,而如果我們不想在伺服器上abondon,那麼我們怎麼做呢?

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

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

       (2) 如果現在版本庫裡最近的一版不是我們想要追加進去的那版,那麼此時我們需要將版本庫裡的版本回退到我們想要追加的那一版,想要將版本回退到我們想要的哪一版有好幾種方法

            1) 第一種即是我們從伺服器上選取我們需要的版本,直接進行挑揀,在伺服器的提交管理頁面上右上方一般會有一個Download按鈕,點選會彈出一個下拉框,選擇其中的cherry-pick,複製命令,

     之後在我們版本倉庫對應的目錄下執行這個命令,執行完後,使用git log -1 命令,可以檢視到現在版本庫裡最近的一版變成了我們剛才挑揀的這版,此時再在工作區直接修改程式碼,

     改完之後進行git add,再執行本git commit --amend命令,之後git push.

            2) 使用gitk或其他的圖形介面化工具,在終端輸入 gitk,回車,會彈出gitk的圖形介面,在介面的左側部分陳列著版本庫中的一條條commit-id,此時選中我們需要的那一版,右鍵點選之後會彈出一個

     選擇選單,如果是在master  分支上,那麼其中會有一項是 Reset master branch to here,點選這項,會彈出一個名為confirm reset的確認box,選擇reset type 中的hard項,再點選OK,

     關閉gitk圖形介面,回到終端,執行git log -1命令,發現現在版本庫裡最近的一次提交已經是我們希望的那一版了,此時再在工作區直接修改程式碼,改完之後進行git add,

     再執行本git commit --amend命令,之後git push.

            3) 如果我們知道我們需要的版本與現在最近的版本中間隔著 n 個提交,那麼我們可以直接使用git reset --hard HEAD~n命令,關於git reset 命令有詳解,此時這個命令執行完後,

     執行git log -1 命令我們會發現現在版本庫裡最近的一版就是我們需要的那版,此時再在工作區直接修改程式碼,改完之後進行git add,再執行本git commit --amend命令,之後git push.

            4) 如果我們不知道我們需要的版本與現在最近的版本中間隔著 n 個提交,那麼我們可以使用git log來檢視版本庫中的commit-id,找到我們需要的commit-id後,在終端中執行git reset --hard commit-id,

     時這個命令執行完後,執行git log -1 命令我們會發現現在版本庫裡最近的一版就是我們需要的那版,此時再在工作區直接修改程式碼,改完之後進行git add,再執行本git commit --amend命令,之後git push.

 1.4 git commit --help

       檢視幫助,還有許多引數有其他效果,一般來說了解上述三種即可滿足我們工作中的日常開發了