zoukankan      html  css  js  c++  java
  • git 提交代码操作

    1.修改1分支后
    git add
    git commint
    2.切换到本地分支git checkout local-5.0
    git remote update 更新远程仓库
    3.git pull origin stable/5.0 将远程仓库最新代码拉取到本地仓库  
    4.git checkout 1
    5. git rebase -i local-5.0
    如果有冲突解决冲突,然后git add ;git commit
    6.git review -r origin <分支名>

    先理解几个git命令

    git checkout -b local-5.0 remotes/origin/stable/5.0

    git checkout -b 1 local-5.0

    git remoute update

    git pull origin stable/5.0

    git rebase -i local-5.0

    git add .

    git commit  / git commit --amend

    git review -r origin stable/5.0

    没有更改的时候是无法push到gerrit上面的 

     分析上面的几步可能会产生冲突的情况:

    1. git checkout local-5.0  是基于远程的stable/5.0 所以local-5.0 对应远程的stable/5.0,即local-5.0==stable/5.0

    基于local-5.0 切出一个分支1

    在切回到local-5.0分支,执行git remote updtae 和git pull origin stable/5.0 这样的操作永远不会有冲突,因为local-5.0没有做修改  (local-5.0永远不做修改只是和stable/5.0保持同步)

    然后切到分支1  git rebase -i local-5.0这时候也不会有冲突,因为分支1也没有做修改    这时候stable/5.0==local-5.0===1 原因如下:在分支local-5.0上执行git remote updtae 和git pull origin stable/5.0 所以这时候 local-5.0==stable/5.0 在分支1上执行git rebase -i local-5.0 所以这时候 1==local-5.0 所以 stable/5.0==local-5.0===1 ,所以就可以在分支1上提交代码

    如果在分支1做了第一次修改,执行git add . git commit git review (这时候stable/5.0==local-5.0===1 所以提交代码不会用冲突, 除非有人在自己git review之前有在远程仓库stable/5.0上merge代码了并且merge的代码是和你修改的shi同一个文件) 假设成功review但是代码没有merge

    分支1上第一次修改 review到了远程仓库但是代没有merge,分支1上做第二次修改,下面可能会产生冲突

    分支1上进行第二次修改,需要先去 local-5.0分支上执行git remote updtae 和git pull origin stable/5.0 这样的操作永远不会有冲突,因为local-5.0没有做修改(local-5.0永远不做修改只是和stable/5.0保持同步)

    然后切换到分支1 进行git rebase -i local-5.0  #注意这时候有很大可能会造成冲突,因为你已经在分支1上做了修改了,代码review上去了,但是没有代码merge,当你执行git rebase -i local-5.0的时候,有很大可能 local-5.0==stable/5.0 分支上有新merge的代码和你的代码修改的是同一个文件,就会产生冲突.

    如果上分支1上 第一次修改的代码已经merge了,这时候在分支1上做第二次修改时先执行git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0

    git checkout 1  git rebase -i local-5.0  这时候会有冲突因为第一次的代码已经merge了本地的代码并没有做修改.

    以上的情况都是分支1上还没有修改,就先执行 

    git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0

    git checkout 1  git rebase -i local-5.0

    如果是分支1上已经做了 git add . 和git commit两个操作然后在执行下面的操作呢

    git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0

    git checkout 1  git rebase -i local-5.0  会出现什么情况

    思考:

    分支1上做第一次修改

    分支1上第一次操作先执行

    git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0  #git checkout loacl-5.0切换到分支loacl-5.0 然后执行 git remote updtae  git pull origin stable/5.0 目的是为了保持local-5.0===stable/5.0

    git checkout 1  git rebase -i local-5.0   #git checkout 1切换到分支1然后执行 git rebase -i local-5.0   目的是为了保持1===local-5.0

    这时候1===local-5.0==stable/5.0

    然后在分支1上修改代码,然后执行

    git add.

    git commit

    git review -r origin stable/5.0 

    这种情况基本上不会出现冲突,除非在git review -r origin stable/5.0之前,又有人在远程仓库merge了代码并且merge的代码和自己修改的是同一个文件

    分支1上做第二次修改

    分支1上做第二次修改的提示:  分支1上第一次修改因为1===local-5.0==stable/5.0 所以git add.  git commit git review -r origin stable/5.0 所以分支1上做第一次修改不会有冲突

    分支1上做第二次修改分两种情况:第一次修改的代码已经merge,第一次修改的代码没有merge.

    分支1上做第二次修改(第一次修改的代码已经merge)

    秉承修改代码之前先执行

    git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0 

    git checkout 1

    git rebase -i local-5.0  #这时候不会产生冲突,因为本地仓库没有修改的代码,第一次修改的代码已经merge了

    然后修改代码,然后执行

    git add.

    git commit

    git review -r origin stable/5.0 

    分支1上做第二次修改(第一次修改的代码没有merge)

    秉承修改代码之前先执行

    git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0 

    git checkout 1

    git rebase -i local-5.0  #这时候很有可能会产生冲突,因为本地仓库的代码还没merge到远程,远程上仓库可能又merge代码了并且,merge的代码和本地修改的是同一个文件

    分支1上做第二次修改(第一次修改的代码没有merge)

    第一次修改的代码没有merge,并且没有秉承修改代码之前先执行下面命令的原则

    git checkout loacl-5.0   git remote updtae  git pull origin stable/5.0 

    git checkout 1

    git rebase -i local-5.0 

    修改了代码 但是不执行git add  这时候是无法切换分支的,必须执行git add和git commit之后才能切换分支,git add和git commit都是在本地操作,git review 才是要推送到远程

    git commit 无法生成Change-Id

    将一个正确项目的.git/hooks/commit-msg 复制到 当前项目中

    每天做好自己该做的事情,你就不会感到迷茫。
  • 相关阅读:
    Windows设置多用户同时远程登录
    Scala配置环境变量windows
    Java学习|强引用,软引用,弱引用,幻想引用有什么区别?
    Java学习|Exception和Error有什么区别?
    关于异常处理的几点建议
    win Server 2008 笔记
    .Net 初步学习笔记之三---变量
    认识与入门 MarkDown 标记语言
    C# winform基础 1、Timer不起作用 2、 设置图片透明
    IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2
  • 原文地址:https://www.cnblogs.com/sosogengdongni/p/10025716.html
Copyright © 2011-2022 走看看