专栏首页Python数据科学最近学到的Git知识,大厂的Git机制还是很方便的

最近学到的Git知识,大厂的Git机制还是很方便的

以下文章来源于程序员乔戈里,作者乔戈里qgl

一、两次的 git commit 到不是同一个远程分支

•这里由于提交自己的代码第一次提交到A分支,第二次提交B分支,然后报错了,这里报错以后,会提示一个百度自己内部的链接,你点击链接就可以照着提示去修改,可以说还是省了不少事,不用自己去google百度去解决,开发效率也提高不少•上面图片中有6e8713f is CR parent commit 这行提示,划重点,待会要用到。

解决过程

你当前的操作场景如下图,由于一次CR(评审)的多个commits不能push到不同的refs/for/[分支名](可能导致后续评审合入merge failed):

评审是啥意思,这里解释一下。本地开发的流程首先是从自己远程的分支A拉到本地,远程分支是master分支的一个clone,本地完成开发后,需要提交到自己的远程分支,提交以后必须由其它人评审代码(code reviewe),其它同事评审的时候主要找出不合规范和逻辑的地方,你需要修改完成以后,才能合入到你的远程分支A,然后再从你的远程分支A合到master上,这样就完成了代码入库。

•本次合并我最终的目的是要合到B分支(第一次提交是A分支,第二次是B分支)•如果你期望commit 1和commit 2均合入分支B:•请回滚本地commit,重新合并为同一笔commit push至分支 B (会生成一笔新的评审)

操作命令

$git reset --soft [CR parent commit] (对应CR parent commit见push报错信息.也就是有6e8713f is CR parent commit)   
$git commit -m "commit message"   
$git push origin HEAD:refs/for/[branch B]

二、git 撤销文件修改

什么时候用到

•如果有文件A没有发生修改,但是再提交评审的时候还是发现A出现了修改,你使用git diff 并没有发现你的本地文件A和远程分支A有什么不同,需要撤销修改•不小心勿加了空行•就是想撤销已经提交的某个文件的修改

如何操作

1. 撤销缓存区的修改[1]

git reset HEAD filename

2.撤销工作区的修改

三、git 冲突解决

上图是提交代码时候,发生了冲突,依旧很贴心,百度这套代码审查系统依旧给了提示,照着提示操作一波。

Step1. 在本地仓库中, 更新并合并代码

git fetch origin
git rebase origin/master

Step2. 依据提示分别打开冲突的文件,逐一修改冲突代码

•可以看到有head和你的本次提交信息,head是远程分支,git commit -m "commit提交信息" 这条命令中我填的是689任务,可以看到每有一处信息不一致,在你产生冲突的文件都会提示出来。•我们需要做的就是解决冲突,对比远程和你本地产生冲突的地方,保留下你需要的代码,同时记得把head和689任务(commit提交信息)这些不是代码中的内容删除掉。•或者不需要这样一点点修改,你已经知道了你需要提交什么样的代码,那么直接将你确定好没问题的代码复制到这份冲突文件中,然后进行git三连即可

Step3. 所有冲突都修改完毕后, 提交修改的代码

git add -u
git rebase --continue

Step4. 更新patch

git push origin HEAD:refs/for/master

四、撤销你的commit提交

如何撤销commit提交,熟练的执行完以下两条命令以后:

git add *
git commit -m "提示信息A"

你发现自己的提示信息写的不对,想git commit -m "提示信息B",但是由于已经git commit 过了,会提示你没有什么需要git commit的,这个时候如何撤销git commit呢?[2]

git reset --soft HEAD^

这样上一次提交就被撤回了,然后继续执行git commit -m "提示信息B" 即可。

References

[1] 撤销缓存区的修改: https://blog.csdn.net/w958796636/article/details/53611133 [2] 如何撤销git commit呢?: https://blog.csdn.net/w958796636/article/details/53611133

本文分享自微信公众号 - Python数据科学(PyDataScience)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 包教包会,7段代码带你玩转Python条件语句

    导读:条件语句通过一个或多个布尔表达式的执行结果(真值或假值)决定下一步的执行方向。所谓布尔表达式,即对某个对象进行布尔运算,产生一个bool值。条件语句的运行...

    用户2769421
  • 一款非常棒的特征选择工具:feature-selector

    本篇主要介绍一个基础的特征选择工具feature-selector,feature-selector是由Feature Labs的一名数据科学家williamk...

    用户2769421
  • 学到了!用 Git 和 Github 提高效率的 10 个技巧

    你可以创建一个对比页面通过使用URL github.com/user/repo/compare/{range}。范围(range)可以是两个SHA例如sha1…...

    用户2769421
  • 最近学到的Git知识,大厂的Git机制还是很方便的

    •这里由于提交自己的代码第一次提交到A分支,第二次提交B分支,然后报错了,这里报错以后,会提示一个百度自己内部的链接,你点击链接就可以照着提示去修改,可以说还是...

    Java技术江湖
  • 最近学到的Git知识,大厂的Git机制还是很方便的

    •这里由于提交自己的代码第一次提交到A分支,第二次提交B分支,然后报错了,这里报错以后,会提示一个百度自己内部的链接,你点击链接就可以照着提示去修改,可以说还是...

    乔戈里
  • git 将多个commit id 打包成一个或者是多个commit id

    我们有时候会出现频繁提交代码的问题,可能多个commit id 实际上一个作用,为了让git log看起来更清晰,我们会将多个commit id 合并成若干个c...

    张凝可
  • git进行版本控制管理

    1、获取远程最新代码后,则需要从本地master分支切换到开发分支。(此处我们以每个新功能为一个新的开发分支)

    李才哥
  • git 奇技淫巧

    和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit

    s_在路上
  • Git示例教程 - 合并多次提交为一次

    因为我们的目的是要把提交1到5合并成一次,所以在编辑器中,我们把第一列的内容改成下面这个样子:

    wangyuntao
  • ARouter 传自定义对象获取值为null的解析 及解决方法

    我在使用 withObject 传自定义对象的时候,发现一个BUG,在传值的时候,会走SerializationService的object2Json方法,但是...

    Xiaolei123

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动