git revert 让提交不再害怕

git revert 让提交不再害怕

使用了好多命令, 但对于 git revert 一直不敢怎么使用, 为什么呢?

因为 git merge 的存在.

每次 对于 git merge 的分支, 执行 git revert xxx 分支的时候总是报错. 没有细追.

今天同事恰好问道了这个问题. 于是追了一下.

主要就是对于 -m 命令. 查看了一下,其中对于

git revert -m 

解释如下

 -m parent-number, --mainline parent-number
           Usually you cannot revert a merge because you do not know which side of the merge should be considered the mainline. This option specifies the
           parent number (starting from 1) of the mainline and allows revert to reverse the change relative to the specified parent.

           Reverting a merge commit declares that you will never want the tree changes brought in by the merge. As a result, later merges will only bring
           in tree changes introduced by commits that are not ancestors of the previously reverted merge. This may or may not be what you want.

           See the revert-a-faulty-merge How-To[1] for more details.

正常使用的话, 那么直接执行

git revert xxx(具体的某次提交的 SHA-1)

如果有某次merge的话

git revert -m 1 xxx (具体的某次提交)

这里的 1 是什么意思呢?

运行 git log 后, 当前的提交信息一般如下

commit

其中的 merge 第一个就是 1, 第二个就是 2, 依次计算;

一个比较好的参考地址如下:

how to revert-a-faulty-merge

原文地址:https://www.cnblogs.com/asdfq/p/9297427.html

时间: 2024-10-28 23:12:12

git revert 让提交不再害怕的相关文章

git revert 用法

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交    * git revert HEAD                  撤销前一次 commit    * git revert HEAD^               撤销前前一次 commit    * git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次

git revert 后悔了 还原修改前的版本 + git 常用命令

昨天手残 然后在GitHub for windows 上点了revert 然后就给重置了 更手残的是又给同步了 .  但是 GitHub 会保留之前的版本 . 只要删掉本次修改就可. 解决方案:  gitshell ->> git revert HEAD 还原已经提交的修改此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交    git revert HEAD                  撤销前一次 commit    git revert HEA

代码回滚:git reset、git checkout和git revert区别和联系

git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为它们非常相似,所以我们经常会搞混,不知道什么场景下该用哪个命令.在这篇文章中,我们会比较git reset.git checkout和git revert最常见的用法.希望你在看完后能游刃有余地使用这些命令来管理你的仓库. Git仓库有三个主要组成——工作目录,缓存区和提交历史.这张图有助于理解每个

git revert

git revert git revert用来撤销一个已经提交了的快照. 但不是从项目历史中移除这个commit, 而是生成一个新的commit, 老的commit还是保留在历史项目里面的. 这样做的好处是防止了项目丢失历史. 用法 git revert <commit> 生成一个新的commit, 撤销老的<commit>的所有修改(注意了这个<commit>之后的commit的修改还在, 你只是撤销了这一个<commit>的修改), 老的commit在项

git入门(4.提交与历史)

四.提交与历史 了解了文件的状态,我们对文件进行了必要的修改后,就要把我们所做的修改放入版本库了,这样以后我们就可以在需要的时候恢复到现在的版本,而要恢复到某一版,一般需要查看版本的历史. 提交 提交很简单,直接执行"git commit".执行git commit后会调用默认的或我们设置的编译器要我们填写提示说明,但是提交说明最好按GIT要求填写:第一行填简单说明,隔一行填写详细说明.因为第一行在一些情况下会被提取使用,比如查看简短提交历史或向别人提交补丁,所以字符数不应太多,40为

git revert与git reset

共同点:此次提交的代码会被退回到暂存区 不同点: git revert:撤销某次操作,用新的commit去标记旧的commit失效,即抵消操作.git log中会有一次提交的commit,有一次撤销提交的commit git reset:撤销某次提交,将HEAD回退,即删除新的commit.git log中没有新的commit 注:日后继续merge以前的老版本时,因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现.

git reset --hard和git revert命令

git reset --hard和git revert命令 git误操作时可以用git reset –hard 去撤销这次修改, 但是这样做也有问题,可能在之前本地有没有提交的修改也都消失了,这种情况下,可以尝试git revert命令. 一 git reset的使用 reset是指将当前head的内容重置,不会留任何痕迹. Sets the current head to the specified commit and optionally resets the index and work

辛星浅析git reset和git revert

很多时候,我们有了误操作,这个时候就需要回退功能的出现,我们可以使用git reset和git  revert这两个功能. git  reset是指将当前head的内容重置,不会留任何痕迹.比如git  reset  --hard   HEAD~3会将最新的3次提交全部重置,就好像没有提交过一样.而--soft和--mixed.--hard会分别重置working  tree和index.HEAD. git   revert是撤销某次提交,但是这次撤销也会作为一次提交进行保存.

git revert和git reset的区别

原文:http://blog.csdn.net/koffuxu/article/details/6731876 git revert 是撤销某次操作,此次操作之前的commit都会被保留 git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区 具体一个例子,假设有三个commit, git st: commit3: add test3.c commit2: add test2.c commit1: add test1.c 当执行git revert HEAD~1时, commi