Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git提交时要使用哪个提交?_Git - Fatal编程技术网

git提交时要使用哪个提交?

git提交时要使用哪个提交?,git,Git,例如,在开始时,master在commit01中,这是正常的,然后我将包含2个提交的branch001合并到master,然后变成: commit04 Merge branch001 into master commit03 commit from branch001 commit02 commit from branch001 commit01 master commit 然后我发现branch001中有一个很大的bug,所以我想回到commit01,如果我使用git revert,我应该使

例如,在开始时,
master
commit01
中,这是正常的,然后我将包含2个提交的
branch001
合并到
master
,然后变成:

commit04 Merge branch001 into master
commit03 commit from branch001
commit02 commit from branch001
commit01 master commit

然后我发现
branch001
中有一个很大的bug,所以我想回到
commit01
,如果我使用
git revert
,我应该使用哪个提交?

如果你使用git revert commit04,它会将合并执行的所有更改还原到主分支


如果您还没有将其推送到远程,您可以运行git reset--hard commit01将工作树恢复到commit01的状态,并删除commits02-4。

如果您没有推送到主节点,则使用origin/master重置local/master

如果已经推送,则恢复合并提交(提交消息,如…<代码>合并分支'分支名称')

$git log#复制合并提交散列
$git revert#revert merge commit
$git推送原点头#推送至原点主控

还原合并提交。如果commit04不是合并提交而是正常提交,这是否意味着我必须分别还原
commit04
commit03
commit02
$ git fetch
$ git reset --hard origin/master
$ git log                  # copy the merge-commit-hash
$ git revert <commit-hash> # revert merge commit

$ git push origin HEAD     # push to origin master