Git常用场景使用方法

所属分类: 网络编程 / 相关技巧 阅读数: 250
收藏 0 赞 0 分享

    1. 本地存在多个commit:

【场景】代码和远程仓库一致,本地修改后,存在多次本地commit,直接push最新的提交,push成功,但本地多次commit记录也会记录到远程仓库中
【举例】第一次提交:添加File1文件,文件内容666666
              第二次提交: 添加File2文件,文件内容888888,修改File1内容

在这里插入图片描述在这里插入图片描述

2. 远程仓库代码回退:

    先本地版本回退:git reset commitid
    本地回退版本强推远程仓库:git push -f

3. rebase操作:

【场景】代码和远程仓库一致,本地修改后存在多次本地commit,本地多次提交的代码没有冲突,rebase合并本地多次commit
【举例】如1中例子,第二次提交为最新提交,希望只保留第二次提交
【操作】3-1. git rebase -i commitid

在这里插入图片描述

   3-2. 之后会进入类似vim的编辑器(i插入修改,修改完:wq保存)
        pick:表示需要提交的commit记录|squash:表示合并到前一个commit
        reword:使用本次提交,但修改commit信息

在这里插入图片描述     

   3-3. 之后会进入提交信息编辑页,修改保存,rebase完毕,合并成功

在这里插入图片描述在这里插入图片描述

【注意】 命令中commitid是两次提交的前一个commitid
                第一个pick不可修改,可以将后面的squash
                如果页面显示noop,就是你的commitid选的是最新提交的commit,这样是不对的

4. push冲突

【场景】本地commit了,但在push之前,远程代码被别人修改过了,代码冲突的情况处理
【举例】添加一个File3,提交前手动修改远程仓库代码(模拟别人提交修改了远程仓库代码),远程仓库代码被修改后,本地push
【操作】4-1. 添加File3

在这里插入图片描述

        4-2. 修改远程仓库代码

在这里插入图片描述

        4-3. 本地push代码,提示冲突,选择Merge,直接push成功

在这里插入图片描述

        4-4 . Merge后推送到远端有两条commit(因为这次push只修改了File3,并没有修改File1,Merge后相当于先拉取代码再提交,所以直接push成功)

在这里插入图片描述

【举例】添加一个File3,并修改File1,提交前手动修改远程仓库代码(模拟别人提交修改了远程仓库代码),远程仓库代码被修改后,本地push需要手动解决冲突。
【操作】4-a. (版本回退后)添加File3,修改File1

在这里插入图片描述

        4-b. 修改远程仓库代码

在这里插入图片描述

        4-c. 本地push代码,提示冲突,选择Merge后手动解决冲突
            Accept Yours: 该文件选择你的版本合并到远端
            Accept Theirs: 该文件选择远端的版本,即放弃该文件的修改
            Merge :对比本地和远端的差异,手动解决冲突,一般都Merge

在这里插入图片描述

         左边是本地的修改,右边是远端的代码,中间是最终推送远端

在这里插入图片描述

        看情况对比修改

在这里插入图片描述

        修改确认后可能会出现push被拒绝,再重新提交一次就好了。

在这里插入图片描述

在这里插入图片描述

【建议】本地先拉取代码,如果冲突手动解决冲突,然后再push

【注意】没有commit就拉取代码,并且Accept Theris,可能会把本地修改过的代码覆盖掉,导致修改的代码丢失,注意备份。
-------------------------------------------------想到别的场景后续再补充------------------------------------------------------------

更多精彩内容其他人还在看

程序员编程从初级到中级的10个秘诀

在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以及面向专家类(MSDN杂志)。
收藏 0 赞 0 分享

关于换行和回车的图文小结

不知道大家用这么多年的电脑,写了这么多的程序,对换行和回车有没有一个认识
收藏 0 赞 0 分享

回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

如果用过机械打字机,就知道回车和换行的区别了。换行就是把滚筒卷一格,不改变水平位置。回车就是把水平位置复位,不卷动滚筒
收藏 0 赞 0 分享

网络编程之get与post的区别与联系

这里来说说get与post的区别与联系,对这方面不懂的鹏哟可以参考下。
收藏 0 赞 0 分享

Web开发人员常用速查手册 英文集合推荐

不管你是多么优秀的程序员,你都不可能记住一切。在你编写程序的过程中碰到问题需要查阅手册的时候,若有现成的手册可参考则可以为你节省很多时间。
收藏 0 赞 0 分享

vs快捷键 用好Ctrl+Enter与Ctrl+Shift+Enter组合键让你的编辑代码速度快了很多

使用Ctrl+Enter组合键在上方插入一行,使用Ctrl+Shift+Enter组合键在下方插入一行
收藏 0 赞 0 分享

对Web开发人员有用的8个网站小结

本文是由比利时的Web开发人员Jean-Baptiste Jung分享的,Jung还在《Web开发/设计人员应当知道的15个网站》这篇文章中推荐了15个相关网站
收藏 0 赞 0 分享

Web开发/设计人员应当知道的15个网站

建个好网站绝非易事,工欲善其事必先利其器。本文编译了15个极其有用的网站,任何一位网站开发者或设计人员都应该收藏起来
收藏 0 赞 0 分享

Application,Session,Cookies对象应用介绍

Application,Session,Cookies对象比较,对于客户端保存登录信息的朋友可以参考下。
收藏 0 赞 0 分享

设计高可用和高负载的网站系统的几个注意事项

随着网站的运营,用户访问量和数据存储量会随着时间发生几何级变化,很快整个系统不堪重负,频繁出现问题。
收藏 0 赞 0 分享
查看更多