提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
场景:项目使用git进行代码管理,开发人员fork远程仓库,在fork分支上进行开发,新代码先提交到fork仓库,然后在合并到远程仓库。
提示:以下是本篇文章正文内容,下面案例可供参考
一、回退已提交未push的代码
1.git log 找到提交的记录 commit "id"。
2.git reset --soft 回退哪个提交记录的commit id。
二、回退已提交和Push的代码
1.git log 找到提交的记录 commit "id"
2.git reset --soft 回退哪个提交记录的commit id
3.git push origin HEAD --force
**扩展:**
git reset --soft HEAD^ 回退到上一个提交版本(一个^表示回到上一个提交,两个就是回到上上一次提交,以此类推)
使用git reset --hard 也可以回退。git reset --soft 和 git reset ---hard之间的区别是:
git reset --soft 只会回退commit 记录,如果要再提提交,正常提交就行了。
git reset --hard 这种方式会彻底回退版本,本地源码也会被回退(也就是说不仅回退了commit记录,连commit的更改内容在本地也会被回退)。
如果通过命令不能解决,重新fork远程仓库就行了,本地源码也不会有影响。
三、在idea中可以使用Stash Changes和UnStash Changes解决冲突
1.Stash Changes可以将本地的改动进行隐藏,不参与commit和Push。
设置完后可以看到本地改动的内容都隐藏了。
2.从远程仓库pull最新代码到本地后,使用UnStash Changes查看之前隐藏的改动文件。
根据之前Stash Changes时的标记找到对应的stash记录,点击Apply Stash将代码回复到本地,这是有冲突的文件的,就会提示你进行解决。