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

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