git merge
git reset
Note: 在合并之前要保证没有未提交的文件,如果有未提交的文件但现在又不想提交,用stash命令暂存。
暂存命令stash使用
git stash
git stash list
git stash pop
git stash apply stash@{1}
git stash clear
回退到某个版本并应用指定的几次提交
git reset --hard 1d7444
git cherry-pick 626335
git cherry-pick …
git push origin HEAD --force
Note:如果是撤销某次提交,可以用revert命令,git revert是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留; git reset是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:
$ git checkout 【行merge操作时所在的分支】
$ git reset --hard 【merge前的版本号】
方法二,当 merge 以后还有别的操作和改动时,git 正好也有办法能撤销 merge,用 git revert:
$ git r
开发项目的时候,使用gitLab合并功能分支feature到dev上的时候,出现了Conflicts,在线解决冲突之后,点击解决合并,结果反向的把dev的分支合并到了feature功能分支,这波蜜汁操作当时我就懵了!这下就终于理解了,当我的分支是feature/xxxx的时候,解决完冲突,将我的目标分支dev合并到了我的源功能分支上面去了,oh shit 这该死的操作!方法2:回滚补救法:设feature分支要合并到dev分支,且出现了冲突,合并完成后,对feature分支做回滚操作。
如果您在执行git merge操作过程中想要终止合并,可以使用命令。这个命令通常用于在遇到合并冲突时放弃当前的合并尝试,并将您的仓库恢复到合并操作之前的状态。
1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。
本图为Idea 2021.3 版本查看commit_id的方式。(点开git提交历史,查看代码改动的时候,左边的剪头指的那个)
2、在当前分支,打开终端,执行命令回退 git reset --hard comm
当我们使用git merge操作合并代码但还没add时,若想取消这次合并,使用“git merge --abort”命令即可
假如不幸已经 git add 了怎么办呢? 其实也很简单,先用 git reflog 指令显示历史的操作
再用 'git reset --hard commit id’就可以回退到操作之前的状态了
转自:https://blog.csdn.net/weixin_40984292/article/details/100024411
stash@{0}: WIP on emcache: c13f985 Merge pull request #12 from username/fixResponseType
stash@{1}: WIP on fixResponseType: 8ba2b28 add and change some logic
指令显示历史的操作 ,查看下提交历史操作查看下你想回退到的版本,复制下那个版本的commit id。有些时候,在merge 的时候合并代码有问题,不想要此时的合并结果时。
Git 的 revert 命令可以用来撤销提交(commit),对于常规的提交来说,revert 命令十分直观易用,相当于做一次被 revert 的提交的「反操作」并形成一个新的 commit,但是当你需要撤销一个合并(merge)的时候,事情就变得稍微复杂了一些。
Merge Commit
在描述 merge commit 之前,先来简短地描述一下常规的 commit。每当你做了一批操作(增加、修改、或删除)之后,你执行 git commit 便会得到一个常规的 Commit。执行 git show