git-reset回退

6.回退到某个commit,转载https://www.cnblogs.com/shengulong/p/9460131.html

 git log查看提交历史及提交的commit_id

回退命令:
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard commit_id 退到/进到 指定commit的sha码

强推到远程:
$ git push origin HEAD --force

 

1.版本回退 # HEAD 是一个特别指针。在 git 中,它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名。

git reset --hard commitId   本地就回退到commitId这个版本号,但远程不会变,如果远程也要回退的话 就执行git push 或 git push -f

$ git reset --hard HEAD^ # 回退到上一个版本
$ git reset --hard HEAD # 撤消工作目录中所有未提交文件的修改内容
$ git reset --hard <version> # 撤销到某个特定版本
$ git checkout HEAD <file> # 撤消指定的未提交文件的修改内容
$ git checkout -- <file> # 同上一个命令
$ git revert <commit> # 撤消指定的提交


2.stash

$ git stash # 暂时储存当前的更改
$ git stash list # 显示暂存列表list
$ git stash apply # 应用最新的暂存区的更改
$ git stash pop # 应用最新的暂存区的更改,并删除最新暂存区

 

3.何将本地代码和commit版本恢复到某一次commit?

git log #查看想要恢复的版本
git reset --hard xxxx # xxxx是想要回复的commit版本

 

4.解决冲突

解决方案:在本地merge要提交的代码,处理冲突后,重新commit并push到远端

举例:从test往master分支提交代码,发现无法merge,确认diff中有冲突文件。具体操作如下:

step1: 切到master分支:  git checkout master

step2: 拉最新的master代码,git pull origin master

step3: 切回test,git checkout test

step4: 合并分支,git merge master -m "merge master"

step5: 找到冲突文件,执行git status,红色文件即为冲突文件

step6: 打开冲突文件,找到冲突位置,与修改该代码的其他同学确认后,修改冲突位置

step7: git add 冲突文件

step8:git commit -m "xxxxxx"

step9: git push origin test

 

5.git rebase操作,

同时参考:

https://www.jianshu.com/p/6960811ac89c

http://www.ruanyifeng.com/blog/2015/08/git-use-process.html

1) 将master分支的提交同步到dev分支:

在dev分支下执行:git rebase master

若没有冲突:git  push -f   

若有冲突:会有conflict的提示,修改具体的冲突文件,修改完保存,然后 git add xxx(冲突文件名)  然后在进行git rebase --continue 操作,最后git push -f

 

 

2)合并 commit1 commit2 commit3 为一个commit

git log 找到commit1之前的一个commit id 为 xxx

git rebase -i xxx

会弹出如下提示,最下面的是最新的提交,把第2、3、4行的pick改为s

这样就合并到第一行的了,保存退出

然后会让你填写commit描述,如果不填就是默认的,保存退出即可

然后执行 git push -f 

 

 

 

6.回退到某个commit,转载https://www.cnblogs.com/shengulong/p/9460131.html

 git log查看提交历史及提交的commit_id

回退命令:
$ git reset --hard HEAD^ 回退到上个版本
$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard commit_id 退到/进到 指定commit的sha码

强推到远程:
$ git push origin HEAD --force
posted @ 2019-08-18 15:11  cjshan  阅读(217)  评论(0编辑  收藏  举报