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