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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM