2020
10-08
10-08
git 优雅的撤销中间某次提交方法
环境git:2+前言最近两天,公司的git合并代码时,出现了严重的问题,浪费很多时间;现在记录下;情况是这样的,一个同事自己的本地分支(远程没有),不知怎么的,有了别人开发分支的代码,而他自己又不知道;其在切换到主分支,并merge自己的分支,此时其已经把别人正在开发的代码都合并到了主分支。到了晚上准备升级时,才发现,主分支的代码出了问题;此时版本库是这样的:如图100047dcc这一步就有不该有的代码;而此时版...
继续阅读 >
前言 其实这个问题困扰我有一段时间,相信也有人和我一样有这个困扰,网上已有很多这种解释了,但是要么就是无图,要么就是解释的很乱,没太看懂,经过自己对git的使用,加上向同事请教,算是理解了这个问题,所以写下来分享一下,我尽量详细说明merge与rebase的区别 假设我们有如下图一所示仓库,该仓库有master和develop两个分支,且develop是在(3.addedmerge.txtfile)commi...
rebase在git中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。它的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简洁!下面看下gitrebase成功之后如何撤销,感兴趣朋友看下。gitrebase过程中可以使用git--abort/--continue来进行操作,成功之后如何撤销呢?首先执行gitreflog查看本地...
有时候在向服务器gitpushoriginmaster的时候会出现失败的现象。它是这样的然后呢,我在百度上历经千辛万苦,找到了解决的方法。他说是因为远程仓库和本地仓库文件冲突,使用gitpull--rebaseoriginmaster(拉取远程的文件把本地的覆盖,再上传)。然后再进行push,我这天真的小白,就深信不疑地使用了。第一次还真的成功了。还提交上去了。但是好景不长,我再次使用的时候(也可能是命令记错了),就变成了这样然后我gitsta...
解决这个问题并没有特别的(删除提交历史中某个文件,然后重新push),但是由于开始的使用失误,中间有使用gitrebase和gitreset命令处理,所以特此记录下大文件无法push到远程仓库问题首先,故事(事故)的起因是这样的。某次gitpush(类似测试使用,没有分支)到远程仓库时发生如下无法提交大文件的报错(大文件是一个pdf文件)$gitpushEnumeratingobjects:204,done.Countingobjects:100%(204/204),done.Deltacompressionus...
Git跟其他版本控制系统一样,可以打标签(tag)标记一个版本号。发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成...
git的工作流工作区:即自己当前分支所修改的代码,gitaddxx之前的!不包括gitaddxx和gitcommitxxx之后的。暂存区:已经gitaddxxx进去,且未gitcommitxxx的。本地分支:已经gitcommit-mxxx提交到本地分支的。代码回滚在上传代码到远程仓库的时候,不免会出现问题,任何过程都有可能要回滚代码:1、在工作区的代码gitcheckout--a.txt#丢弃某个文件,或者gitcheckout--.#丢弃全部注意:gitcheckou...
在日常的git操作中,gitcheckout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。在下面的命令中,使用了一些简写,在这里说明一下:gitst#gitstatusgitci#gitcommitgitbr#gitbranchgitco#gitcheckoutgitmg#gitmergegitline#gitlog--oneline当然,你也可以直接在git中敲命令,将这些简写添加到git配置中gitconfig--global-e然后,可以插入下面的配置:[alias]st=statusc...
1、新建maven项目2、配置git仓库3、在远程机器上执行脚本,这一步需要先配置能ssh远程机器a、安装publishoverssh插件b、jenkins----配置----configsystem,配置远程连接主机账号密码高级那边配置密码c、配置SendfilesorexecutecommandsoverSSHafterthebuildruns4、构建jar包5、前面SendfilesorexecutecommandsoverSSHafterthebuildruns也可以在PreSteps或者PostSteps这两个步骤配置6、全部配置完保存,...
仅结合本人使用场景,方法可能不是最优的1.忽略本地修改,强制拉取远程到本地主要是项目中的文档目录,看的时候可能多了些标注,现在远程文档更新,本地的版本已无用,可以强拉gitfetch--allgitreset--hardorigin/devgitpull关于commit和pull的先后顺序,commit——》pull——》push和pull——》commit——》push的顺序,两种情况都遇到过代码冲突。解决方法如下:2.未commit先pull,视本地修改量选择revert或stash//场...
1、git冲突的场景情景一:多个分支代码合并到一个分支时;情景二:多个分支向同一个远端分支推送代码时;实际上,push操作即是将本地代码merge到远端库分支上。关于push和pull其实就分别是用本地分支合并到远程分支和将远程分支合并到本地分支所以这两个过程中也可能存在冲突。git的合并中产生冲突的具体情况:<1>两个分支中修改了同一个文件(不管什么地方)<2>两个分支中修改了同一个文件的名称两个分支中分别修改...
一、前言一句话,gitrebase可以帮助项目中的提交历史干净整洁!!!二、避免合并出现分叉现象gitmerge操作1、新建一个develop分支2、在develop分支上新建两个文件3、然后分别执行add、commit、push4、接着切换到master分支分别添加c.txt和d.txt两个文件,分别进行add、commit、push5、现在想把develop分支上开发的部分合并到master分支上6、gitmerge会将master和develop合并的过程...
0.事先准备。1)把远程仓库的README.md内容改写为bbb(原先为aaa)。2)本地仓库的README.md内容改写为ccc(原先也为aaa)。以此来模仿代码冲突。1.先commit再pullpull的时候会提示有冲突,需要你进行手动mergeAcceptYours就是直接选取本地的代码,覆盖掉远程仓库的AcceptTheirs是直接选取远程仓库的,覆盖掉自己本地的我们选择Merge,自己手动行进选择、修改。这里左边部分是你本地仓库的代码,右边部分是远程仓库的代码,中间的r...