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

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

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 复制到 当前项目中

git 提交代码操作的更多相关文章

  1. Git提交代码失败: empty ident name (for <>) not allowed

    使用git提交代码,报错如下: 下午2:56 Commit failed with error 0 files committed, 1 file failed to commit: 升级 empty ...

  2. git提交代码到码云

    日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云. 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是 ...

  3. Git提交代码到主分区

    git 提交代码,本地新建一个my分支,不从本地master分支直接上传,而是先从本地my分支上提交至本地master分支,然后本地master提交至远程master分支 上.前提是远程只有一个mas ...

  4. pycharm 使用Git提交代码到Github

    pycharm 使用Git提交代码到Github pytharm 创建django项目,提交到github总是失败,在github创建项目拉下来后项目层级会多一层,为此查了一些资料,亲测如下方式可行. ...

  5. Git 提交代码和更新代码

    首先,操作之前一定要看清分支!! 其次,提交代码之前一定要先更新代码!! git branch        -----查看当前分支 git pull             -----更新代码到本地 ...

  6. Git提交代码和更新代码命令

    微信公众号:非科班的科班关注可了解更多的java教程和其它资源视频.问题或建议,请公众号留言; 1.Git提交代码 利用命令提交代码的步骤:1.1.拉取服务器代码,避免覆盖他人的代码 git pull ...

  7. git提交代码到github

    前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...

  8. 使用git提交代码到github,每次都要输入用户名和密码的解决方法

    自从使用git提交代码到github后,发现自己使用git的功力增长了不少,但也遇到不少问题.比如,使用git提交代码到github的时候,经常要求输入用户名和密码,类似这种: 网上有这么一种解决方法 ...

  9. 在使用Git提交代码的时候犯了个低级错误

    今天在使用git提交代码的时候,犯了个很低级的错误,按照一切流程当我add并commit提交代码,最后使用push到远程仓库, 接下来奇怪的事情发生了,push之后,查看远程仓库代码并没有发现提交记录 ...

随机推荐

  1. Celery异步的分布式任务调度理解

    什么是Celery呢? Celery是一个用Python开发的异步的分布式任务调度模块. Celery本身不包含消息服务,使用第三方消息服务,也就是Broker,来传递任务,目前支持的有Rebbimq ...

  2. cached_property的使用

    cached_property修饰过的函数,变成是对象的属性,该对象第一次引用该属性时,会调用函数,对象第二次引用该属性时就直接从词典中取了,这也说明引用属性是经过__getattritue__. c ...

  3. Faiss in python and GPU报错:NotImplementedError: Wrong number or type of arguments for overloaded function 'new_GpuIndexFlatL2'.

    最近在玩faiss,运行这段代码的时候报错了: res = faiss.StandardGpuResources()flat_config = 0index = faiss.GpuIndexFlatL ...

  4. Java好的的工具类:MD5

    import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5 ...

  5. 有哪些api接口可以实现微信自动唤醒浏览器,下载app,打开网页

    现在微信渠道可以说是拉新最快的渠道,因为微信具备强裂变性.但是目前微信对第三方下载链接的拦截是越来越严格了,那么想要在微信内肆无忌惮地推广链接就需要用到微信跳转浏览器的接口,那如何获取该接口呢?   ...

  6. Linux网络编程学习(七) ----- 有名管道(第四章)

    1.什么是有名管道?为什么有了管道还需要有名管道? 有名管道是解决管道不能提供非父子进程间通信的缺陷.管道在Linux系统内部是以文件节点(inode)的形式存在,但由于其对外的不可见性(“无名”性) ...

  7. linux 文件压缩与解压

    zip格式: zip -r(源文件是目录) [目标文件] [源文件] unzip -d [解压到的目录] [要解压的文件] gz格式: gzip [源文件]   #会删除源文件 gzip -c [源文 ...

  8. MVC生成页码选择器返回HTML代码

    我主要讲此代码用于MVC的分布页. 先看最终效果最终效果: 样式为bootstrap3中的分页“pagination”,如果不使用bootstrap单独提出来并不大 页码生成代码为: public s ...

  9. el-input的color修改无效问题

    相信很多前端初学者跟我一样也遇到过el-input的color修改无效问题 如下图:我想把el-input里面的文字改成蓝色,但是使用总是失败 修改方法:打开调试界面,找到el-input对应的sty ...

  10. Java框架spring 学习笔记(九):Spring的bean管理(@Required、@Component、@Autowired、@Resource注解)

    注解:代码里面特殊的标记,使用注解可以完成相关功能 注解写法:@注解名称(属性名.属性值) @Required 用在set方法上,一旦用了这个注解,那么容器在初始化bean的时候必须要进行set,也就 ...