首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git版本回退, github版本回退

) # 结论放开头 - 不要在公共分支做reset, 不要修改公共分支的历史  - 使用revert不会改变历史,只是增加一个版本 1.reset 几个月前,我提交了一次更改,这个更改涉及几十个文件,提交到...看着报错我毫无头绪,不明白health check究竟是因为代码的哪部分造成的,这提醒我以后的错误日志一定要详细。但有一点是肯定的,这次提交的更改有问题。既然上一次的代码没问题,那就回退吧。...也就是说master的历史中已经包含了这个版本,所以不用merge。 因此,如果想要合并分支,那么要合并的分支必须比当前分支的版本先进。显然,reset只能重置本地或者说本分支的更改。...那么,我如果想要mater回退,我必须提交一个比mater先进而且内容正好的是上一次提交的相反的修改。这就是revert干的事情。 2.revert revert指定版本可以实现版本回退。...这个不是像reset一样指针回退,而是会创建一个新的提交,而且将指定版本的修改逆过来。这样,我们想回退的内容被逆反修改过来了,而且我们的版本比master先进。这样就可以直接提交了。 ? ?

1.8K60

【工具】Git 常用操作 - 备忘录

,放弃所有修改,从上次保存文件开始编辑 2、给上一条已经提交的记录,额外新添加更多修改 比如我已经提交了一条记录,新增了一个文件 1.txt 但是后面发现我少提交了一个文件 2.txt,现在我要把 2....这个时候肯定是无法直接吞并 分支 A 了,需要用到非快进模式,就是下一个指令会做的 也即是说,快进模式 只有在 分离出分支之后的 没有任何提交 的分支适用 举例就是 分支 B 分离 出 分支 C,然后在分支...举个例子 比如 分支A 上有提交 3,4,5,6 四个提交,我只要把 其中 4 和5 合并到 master 上 1、切换到分支 A 上,git checkout A 2、开始rebase,git rebase...上面的图中出现了三个提交,这里的提交是从旧到新的,就是说我要改的倒数第三个提交是 这个界面显示的第一个(对比下 git log 显示的提交) ?...查看日志,已经不见那个提交了 ? 3多个 commit 合并为一个 看例子,我要把 master 上最新的三个提交合成一个 ? ?

46731
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git合并不同url的项目

    摘要:为了让项目能实现Git+Gerrit+Jenkin的持续集成,我们把项目从Git上迁移到了Gerrit上,发现有的同事在老Git提交代码,因为Gerrit做了同步,在Gerrit上有新提交的时候就会刷新老...这个时候我就必须要在两个相似项目之间合并提交了。...gitoa_web/master合并项目 gitoa_web是指代仓库,master指代分支,当然如果有需要也可以合并别的分支过来 [报错] 发现不同email地址错误不能成功提交 因为这个commit...不是我的 [修正错误] 把email地址更新成我的 再提交就成功了 保留原有的commit用户 在上一节我们 先使用命令git remote add [shortname] [url]将老Git url...因为在新的项目上合并老项目的代码,对于新项目来说是新的代码提交,所以只允许你一个人来提交 如果在老项目上,给新项目推代码这种顺序就是已有代码推到已有仓库 小结 知识点: git merge还可以合并其他项目的到本项目

    2.4K230

    Git 不要只会 pull 和 push,学学这 5 条提高效率的命令

    一般我们在使用 reset 命令时,git reset –hard 会被提及的比较多,它能让 commit 记录强制回溯到某一个节点。...应用场景 1:有时候版本的一些优化需求开发到一半,可能其中某一个开发完的需求临时上,或者某些原因导致开发的需求卡住了已开发完成的需求上线,这时候就需要把 commit 抽出来,单独处理。...应用场景:应用场景:有一天测试突然跟你说,你开发上线的功能有问题,需要马上撤回,否则会影响到系统使用,这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还要其它同事的代码,用 reset...revert 合并提交在 git 的 commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。现在的 master 分支里多了条合并提交。...因为使用 revert 后,v2.0 分支的 commit 还是会保留再 master 分支的记录中,当你再次合并进去时,git 判断有相同的 commitHash,就忽略了相关的 commit 需改内容

    45720

    Git 小手记

    重新在当前分支做一遍.既然是重新做一遍, 那么 commit hash 肯定会改变的.这个操作就很不妙, 因为比如说你是在 master 分支上做 rebase, 通俗地说, 你是在将 master 上的...这样的操作在公共分支上是非常危险的, 比如原本 master 上的 A commit 很多人基于这个 commit 开展了很多工作, 然后你在 master 分支上做了 rebase, A 就变成了 A...commit hash 已经不同, git 会认为这是一个新的提交, 然后像新的 commit 一样提交到仓库里面, 这样可以说 master 分支已经分叉了, 因为别人的 master 分支和你的已经不一样了..., 而相反在这样的 feature 分支上做 rebase 是被提倡的, 比如同事新提交了几个 commit, 你也有几个分支需要提交, 那么你只需要 git fetch, 然后 git rebasse..., 意思就是将你的 commit 移到远程的同事已经提交的 commit 后面, 对没错, 我说的就是使用 git fetch + git rebase 代替 git fetch + git merge

    57520

    Git 不要只会 pull 和 push,试试这 5 条提高效率的命令

    应用场景1:有时候版本的一些优化需求开发到一半,可能其中某一个开发完的需求要临时上,或者某些原因导致待开发的需求卡住了已开发完成的需求上线。这时候就需要把 commit 抽出来,单独处理。...还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支上。先把起点c和终点e的 commitHash 记下来。 切到 master 分支,使用区间的cherry-pick。...这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还有其他同事的代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 在 git 的 commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 现在的 master 分支里多了条合并提交。...git revert -m 1  revert 合并提交后,再次合并分支会失效 还是上面的场景,在 master 分支 revert 合并提交后,然后切到 feature 分支修复好

    1.2K20

    Git 不能只会 pull 和 push,试试这5条提高效率的命令吧!

    应用场景1:有时候版本的一些优化需求开发到一半,可能其中某一个开发完的需求要临时上,或者某些原因导致待开发的需求卡住了已开发完成的需求上线。这时候就需要把 commit 抽出来,单独处理。...还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支上。先把起点c和终点e的 commitHash 记下来。 切到 master 分支,使用区间的cherry-pick。...这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还有其他同事的代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 在 git 的 commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 现在的 master 分支里多了条合并提交。...git revert -m 1    revert 合并提交后,再次合并分支会失效 还是上面的场景,在 master 分支 revert 合并提交后,然后切到 feature 分支修复好

    62120

    Git 不要只会 pull 和 push,试试这 5 条提高效率的命令!

    应用场景1:有时候版本的一些优化需求开发到一半,可能其中某一个开发完的需求要临时上,或者某些原因导致待开发的需求卡住了已开发完成的需求上线。这时候就需要把 commit 抽出来,单独处理。...图片 还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支上。先把起点c和终点e的 commitHash 记下来。...这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还有其他同事的代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 在 git 的 commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 图片 现在的 master 分支里多了条合并提交。...git revert -m 1 revert 合并提交后,再次合并分支会失效 还是上面的场景,在 master 分支 revert 合并提交后,然后切到 feature 分支修复好

    16510

    Git 5条提高效率的命令

    这需要您的工作树清洁(没有从头提交的修改)。 将已经提交的 commit,复制出新的 commit 应用到分支里 应用场景 commit 都提交了,为什么还要复制新的出来?...应用场景:有时候版本的一些优化需求开发到一半,可能其中某一个开发完的需求要临时上,或者某些原因导致待开发的需求卡住了已开发完成的需求上线。这时候就需要把 commit 抽出来,单独处理。...checkout master git checkout -b branch2 把旧的分支上某个commit释放到新的分支上 git cherry-pick a2dd8ac380f0110629a7aa42727ea6947da56cb6...这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还有其他同事的代码,用 reset 会把这部分代码也撤回了。...没办法,reset --hard 是强制回退的,找不到 commitHash 了,只能让同事从本地分支再推一次(同事瞬间拳头就硬了,怎么又是你)。于是,你的技术形象又一落千丈。

    21420

    Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下)

    应用场景:应用场景:有一天测试突然跟你说,你开发上线的功能有问题,需要马上撤回,否则会影响到系统使用,这时可能会想到用reset回退,可是你看了看分支上最新的提交还要其它同事的代码,用reset会把这部分代码也撤回了...revert合并提交在git的commit记录里,还有一种类型是合并提交,想要revert合并提交,使用上会有些不一样。现在的master分支里多了条合并提交。...revert合并提交后,再次合并分支会失效还是上面的场景,在master分支revert合并提交后,然后切到v2.0分支修复好bug,再合并到master分支时,会发现之前被revert的修改内容没有重新合并进来...因为使用revert后,v2.0分支的commit还是会保留再master分支的记录中,当你再次合并进去时,git判断有相同的commitHash,就忽略了相关的commit需改内容。...应用场景:应用场景:某天你眼花,发现自己在其它人分支提交了代码还推到远程分支,这时因为分支只有你的最新提交,就想着使用reset –hard,结果紧张不小心点错了commitHash,reset过头,把同事的

    42520

    Git 不能只会 pull 和 push,试试这5条提高效率的命令吧!

    应用场景1:有时候版本的一些优化需求开发到一半,可能其中某一个开发完的需求要临时上,或者某些原因导致待开发的需求卡住了已开发完成的需求上线。这时候就需要把 commit 抽出来,单独处理。...还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支上。先把起点c和终点e的 commitHash 记下来。 切到 master 分支,使用区间的cherry-pick。...这时可能会想到用 reset 回退,可是你看了看分支上最新的提交还有其他同事的代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 在 git 的 commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 现在的 master 分支里多了条合并提交。...git revert -m 1    revert 合并提交后,再次合并分支会失效 还是上面的场景,在 master 分支 revert 合并提交后,然后切到 feature 分支修复好

    42140

    提交代码报错 error: failed to push some refs to

    陌涛想把本地的分支推送到远程仓库时,突然出现了错误提醒error: failed to push some refs to...。瞅了瞅,也没错呀,那为啥推不上去???...分支名不完整 emmm,这个错误大概是最难发现的了,不是说难度系数高,而是大家都把以本地master与远程master为例去写答案,于是大家会下意识忽略掉本地分支与远程分支名不一样的情况。...(也可能这个大家只包含了我....) git推送的完整写法如下: git push @remoteName @localBranch:@remoteBranch // eg.remoteName:origin...例如本地和远程的分支名都是master: git push origin master 如果确认分支名没有错,那就继续往下看 没有提交代码 可以用 git status查看是否忘了把代码提交上去了。...git add . git commit -m "This is a new commit" git push origin master 本地与远程产生冲突 或是有其他协作者提交了代码,或是你之前在远程上直接做了处理

    11.9K10

    动图学CS: 有用的 Git 命令(上)

    尽管 Git 是一个非常强大的工具,但是我相信大部分同学有时候学起 Git 来,感觉很难搞~ 笔者总是习惯于在脑海中重现学习的知识,Git 也一样:当我们执行了切换分支命令,分支之间是如何交互的?...又是如何影响历史提交的?当我在 master 分支上执行了强制 reset 又 force push 到了远端 ,又把 .git 文件夹删掉,我的同事为什么会哭??...现在 master 分支就包含 dev 分支中的所有提交了。 合并冲突(Merge Conflicts) 尽管 Git 对于合并的默认行为非常棒,但是总有需要我们自己解决的时候。...比如说,当两个分支上都有新的提交,又同时修改了同一个文件同一行的内容,或者一个分支上删除了一个文件,而另一个分支却修改了那个文件等等。 这些情况下,Git 就会请我们来帮忙啦。...当你在 feature 分支上工作,而 master 分支又更新了,这时就可以使用 rebase,无缝地将 master 上的分支更新到你的 feature 分支了!

    99440

    git创建分支,合并分支,常用命令

    在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对 象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先...之后 Git 创建的提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)的指针,如此它就可以在将来需要的时候,重现此次快照的内容了。...所以此特性让 Git 的合并操作比其他系统都要简单不少。 ? 图 3-17. Git 自动创建了一个包含了合并结果的提交对象。...(Git 为我默认选择了 opendiff,因为我在 Mac 上运行了该命令),你可以在上方”merge tool candidates”里找到可用的合并工具列表,输入你想用的工具名。...如果你从这里克隆,Git 会自动为你将此远程仓库命名为origin,并下载其中所有的数据,建立一个指向它的 master 分支的指针,在本地命名为 origin/master,但你无法在本地更改其数据。

    15K51

    Git版本回退方法论(可能解决你101%遇到的Git版本问题)

    1 本地回退 你在本地做了错误的 commit,先找到要回退的版本的commit id: git reflog ?...commit有误,你用reset回滚远程分支master到A1,那么理想状态是你的同事一拉代码git pull,他们的master分支也回滚了 然而现实却是,你的同事会看到下面的提示: $ git status...(use "git push" to publish your local commits) nothing to commit, working directory clean 也就是说,你的同事的分支并没有主动回退...,而是比远程分支超前了两次提交,因为远程分支回退了。...命令的好处就是不会丢掉别人的提交,即使你撤销后覆盖了别人的提交,他更新代码后,可以在本地用 reset 向前回滚,找到自己的代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖的提交了。

    2.5K20

    Git版本回退方法论(可能解决你101%遇到的Git版本问题)

    1 本地版本回退 你在本地做了错误的 commit 先找到要回退的版本的commit id: git reflog ?...commit有误,你用reset回滚远程分支master到A1,那么理想状态是你的同事一拉代码git pull,他们的master分支也回滚了 然而现实却是,你的同事会看到下面的提示: $ git status...(use "git push" to publish your local commits) nothing to commit, working directory clean 也就是说,你的同事的分支并没有主动回退...,而是比远程分支超前了两次提交,因为远程分支回退了。...命令的好处就是不会丢掉别人的提交,即使你撤销后覆盖了别人的提交,他更新代码后,可以在本地用 reset 向前回滚,找到自己的代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖的提交了。

    1.1K41

    Git最全系列教程(三)

    在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先...之后 Git 创建的提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)的指针,如此它就可以在将来需要的时候,重现此次快照的内容了。...所以此特性让 Git 的合并操作比其他系统都要简单不少。 ? 图 3-17. Git 自动创建了一个包含了合并结果的提交对象。...(Git 为我默认选择了 opendiff,因为我在 Mac 上运行了该命令),你可以在上方"merge tool candidates"里找到可用的合并工具列表,输入你想用的工具名。...如果你从这里克隆,Git 会自动为你将此远程仓库命名为 origin,并下载其中所有的数据,建立一个指向它的 master 分支的指针,在本地命名为 origin/master,但你无法在本地更改其数据

    98330

    前端小微团队的Gitlab实践

    需求开发 feature/1,一个特性分支,对应issue 1 创建需求 正常的需求当然来源于产品经理等需求提出方,由于是通过示例说明,这里我自己在TAPD上模拟着写一个需求。 ?...修复测试环境bug bug/3,一个bug分支,对应issue 3 这里说的是在迭代周期内由测试工程师发现的测试环境中的系统bug,这些bug会被记录在敏捷开发协作平台TAPD上。...最重要的是,git revert在回滚的细节控制上更加优秀,可解决部分回滚的需求。...修复线上bug hotfix/5,一个线上热修复分支,对应issue 5 比如线上出现了系统无法登录的bug,测试工程师也在TAPD提交了缺陷记录。那么修复线上bug的步骤是什么呢?...有了cherry pick,我们就可以合并单次提交记录,解决git merge时合并太多不想要的内容的烦恼,在解决bug时特别有用。

    1.5K1815

    彻底搞懂 Git-Rebase

    二、导致问题 1.不利于代码 review 设想一下,你要做 code review ,结果一个很小的功能,提交了 60 多次,会不会有一些崩溃?...四、Rebase 场景二:分支合并 1.我们先从 master 分支切出一个 dev 分支,进行开发: git:(master) git checkout -b feature1 2.这时候,你的同事完成了一次...1.当我们在一个过时的分支上面开发的时候,执行 rebase 以此同步 master 分支最新变动; 2.假如我们要启动一个放置了很久的并行工作,现在有时间来继续这件事情,很显然这个分支已经落后了。...根据上文来看,git-rebase 很完美,解决了我们的两个问题: 1.合并 commit 记录,保持分支整洁; 2.相比 merge 来说会减少分支合并的记录; 如果你提交了代码到远程,提交前是这样的...: 提交后远程分支变成了这样: 而此时你的同事也在 feature1 上开发,他的分支依然还是: 那么当他 pull 远程 master 的时候,就会有丢失提交纪录。

    5.2K20

    合并冲突 - 每天三分钟玩转Git(三)

    为了产生一个冲突,我在另一个地方向远程仓库提交了代码,更改share_file.txt文件,加了一行内容tom add for merge 本地修改同一个文件加了一行pzqu add for merge...02 — 合并不同分支的冲突 想像一下,要是我们只用主分支来写代码,在和同事开发不同功能的时候交叉提交到远程的主线上,要是产品突然不要这个功能了,回退起来就非常的困难,不仅仅要去一个一个的找哪个提交是属于这个功能...用分支就不会有这么多事情,在自己的分支上干活,等全部开发完成,再一次性的合并到主分支上,这样我们既可从分支上知道一个人的开发进度,又不影响大家干活,是不是很 方便呢?...解决完冲突异常的舒适 上图我们可以看到: master分支比远程origin/master分支多一次提交,dev/pzqu分支由于是基于origin/master分支,合并了master分支的提交和当前...通常我们开一个新的开发分支是为了在自己的分支上写代码,方便提交也不会把主线弄乱。 现在我们用同样的方法将dev/pzqu合并到master分支,然后把两个分支都提交到远程。 ?

    59810
    领券