Git提交代碼一般流程

Git的代碼管理區有工作區、暫存區、本地倉庫和遠端倉庫;常用的代碼處理過程有git add、git commit、git push 和 git pull、 git reset、git checkout等。

 

 

提交代碼流程

情景一:基於遠端庫最新版本,在工作區修改了代碼,並將此修改入庫

    1. git add .      將代碼提交至暫存區
    2. git commit -m "對修改功能的說明"   將代碼從暫存區提交至本地倉庫
    3. git push origin branch  branch是不用評審分支
    4. git push origin HEAD:refs/for/branch    branch是需要評審的分支    將代碼從本地倉庫推至遠端倉庫

情景二:工作區修改了代碼,但遠端庫的版本被更新過

放棄工作區修改

    1. git checkout . 將工作區的所有文件的內容恢復到暫存區的狀態
    2. git checkout files 將工作區的指定文件的內容恢復到暫存區的狀態

然後,用git  pull 更新代碼即可

不放棄工作區修改

需要將本地倉庫的代碼更新,纔可提交修改。而git pull更新本地倉庫和工作區的代碼時,會存在代碼衝突的情況。

解決工作區修改與遠端庫有衝突方法有

第一種(我常用)

    1. git stash 工作區修改的代碼放入暫存區
    2. git pull 將遠端庫的代碼更新至本地
    3. git stash pop 將暫存區修改的代碼與現有最新代碼merge,可能存在衝突,需要解決衝突文件
    4. git add files(解決衝突後的文件)
    5. git commit -m "說明"
    6. git push

 

第二種

    1. git fetch  命令詳情
    2. git merge 若無衝突,直接merge成功,若有衝突,會顯示衝突文件
    3. git add . 
    4. git commit -m "說明" 將工作區修改代碼提交至本地倉庫,這樣可以用mergetool與fetch的新代碼比較
    5. git mergetool  比較衝突的文件,左側窗口是工作區修改的代碼,中間是本地倉庫代碼;右側是遠端倉庫的修改代碼,將需要的功能,同步至中間窗口保存即可
      以diffmerge工具作爲比較工具爲例
      git config --global merge.tool diffmerge
      git config --global mergetool.diffmerge.path /usr/bin/diffmerge
      
      PS:
      在使用git mergetool命令時,可能無法及時彈出比較文檔的對話框,可嘗試多輸幾次命令;
      百度經驗也有設置一些變量,如
      git config --global mergetool.diffmerge.trustexitcode true
      git config --global core.trustctime false
      git rebase --skip
      mergetool設置方法

       

    6. git commit -m " "將解決衝突後的文件提交,結束合併流程
    7. git push

常用git命令的詳解

  • git reset

 https://www.cnblogs.com/qyxl/p/12228974.html

  • git checkout

 https://www.cnblogs.com/qyxl/p/12229048.html

  • git push

https://www.cnblogs.com/qyxl/p/12214793.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章