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
分析上面的几步可能会产生冲突的情况:
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 提交代码操作的更多相关文章
- Git提交代码失败: empty ident name (for <>) not allowed
使用git提交代码,报错如下: 下午2:56 Commit failed with error 0 files committed, 1 file failed to commit: 升级 empty ...
- git提交代码到码云
日常代码一般提交到github比较多,但我还是钟爱马爸爸,没错就是码云. 码云是中文版的代码托管的网站,不存在打开网速问题,使用也蛮方便的,日常自己保存托管代码已经足够,平时使用git提交代码到码云是 ...
- Git提交代码到主分区
git 提交代码,本地新建一个my分支,不从本地master分支直接上传,而是先从本地my分支上提交至本地master分支,然后本地master提交至远程master分支 上.前提是远程只有一个mas ...
- pycharm 使用Git提交代码到Github
pycharm 使用Git提交代码到Github pytharm 创建django项目,提交到github总是失败,在github创建项目拉下来后项目层级会多一层,为此查了一些资料,亲测如下方式可行. ...
- Git 提交代码和更新代码
首先,操作之前一定要看清分支!! 其次,提交代码之前一定要先更新代码!! git branch -----查看当前分支 git pull -----更新代码到本地 ...
- Git提交代码和更新代码命令
微信公众号:非科班的科班关注可了解更多的java教程和其它资源视频.问题或建议,请公众号留言; 1.Git提交代码 利用命令提交代码的步骤:1.1.拉取服务器代码,避免覆盖他人的代码 git pull ...
- git提交代码到github
前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...
- 使用git提交代码到github,每次都要输入用户名和密码的解决方法
自从使用git提交代码到github后,发现自己使用git的功力增长了不少,但也遇到不少问题.比如,使用git提交代码到github的时候,经常要求输入用户名和密码,类似这种: 网上有这么一种解决方法 ...
- 在使用Git提交代码的时候犯了个低级错误
今天在使用git提交代码的时候,犯了个很低级的错误,按照一切流程当我add并commit提交代码,最后使用push到远程仓库, 接下来奇怪的事情发生了,push之后,查看远程仓库代码并没有发现提交记录 ...
随机推荐
- Android开发 ViewConfiguration 用法
ViewConfiguration 实例获取 ViewConfiguration viewConfiguration = ViewConfiguration.get(Context); 常用对象方法 ...
- 树莓派(Raspberry Pi 3)安装centos7后yum无法使用解决办法
树莓派(Raspberry Pi 3)安装centos7后yum无法使用解决办法 人穷,闲鱼淘了个二手的树莓派3 英国版,无奈咱也不会用,很无奈~ 安装教程百度到的差不多都可以,找个格式正常的一步一步 ...
- cdh启动datanode报错
问题: 为cdh新增节点时,在分配datanode后,启动报错 Can't open /iot/opt/cloudera-manager/cm-5.11.2/run/cloudera-scm-agen ...
- ThreeJs 模型的缩放、移动、旋转 以及使用鼠标对三维物体的缩放
首先我们创建一个模型对象 var geometry = new THREE.BoxGeometry( 100, 100, 100); //边长100的正方体 var material = new TH ...
- 线程之Callable、Future 和FutureTask使用及源码分析
一.Callable 我们知道启动线程有以下两种方式(jdk源码注释中官方定义只有两种启动方式,callable不算线程启动方式) 原文链接:http://www.studyshare.cn/blog ...
- EasyUI在window中使用kindeditor 4.1.10在IE9中不能回显、获得焦点编辑的问题
描述 :kindeditor4.1.10版本是当前最新的版本,在浏览器兼容性和功能方面都是值得一赞的,在开发中能方便快捷的满足一些开发需求. 问题 : 问题总是有的. 在使用过程中,遇到EasyU ...
- C++的正则
C++的正则封装的不丰富.只有最基础的三个主要的函数(也可能是我孤陋寡闻).要有更为丰富的功能需要自己进一步组合. 我目前只需要循环查找这个功能,并且我也不知道c++的正则支持正则的哪些功能; 代码如 ...
- 使用phxpaxos开发过程中遇到的坑
1. 开启BatchPropose后,状态机使用ExecuteForCheckpoint生成快照要注意: ExecuteForCheckpoint中的InstanceID不能立即持久化. 例如: 当i ...
- Python对象迭代与反迭代相关问题与解决技巧
1.如何实现可迭代对象和迭代器对象(1)¶ In [1]: # 列表和字符串都是可迭代对象 l = [1,2,3,4] In [2]: s = 'abcde' In [3]: for x in l ...
- java 诊断工具——Arthas
该说不说!小编做的这些功能,最讨厌的就是优化!某些前辈大佬写的代码小辈我实在不敢恭维!那逻辑!那sql! 接下来!今天的主角就登场了,阿里巴巴最近开源出来的一个针对 java 的工具,主要是针对 ja ...