多人开发的项目,使用git时,会有冲突的存在的情况
1.1 如果不小心commit了一个不需要commit的文件,可以对其进行撤销。
git add .
git commit -m'测试'
git push 推送不上去,提示有冲突
使用命令 git reset --mixed HEAD~2 ,回退到第一步,将步骤2取消掉,步骤3的文件将会撤销,变成等待添加,但不会丢失,我们只需要在add一次即可。
此时先回退之前的修改(记得备份),再 git pull 拉取最新代码,加上自己的修改再次提交即可
例如:假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行git revert HEAD~1时, commit2被撤销了
1.2 另一种方式
可以继续操作git push
重新再次执行 git add .
git commit -m'测试'
git push
命令后,此时查看文件修改,会看到有冲突的某一文件,这时,查看修改是否正确,决定采用哪次修改
关于git reset命令,包括 --mixed,--soft --hard等,其中--mixed为默认方式,他们之间的区别如下
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可 git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容git reset -soft :取消了commit git reset -mixed(默认) :取消了commit ,取消了add git reset -hard :取消了commit ,取消了add,取消源文件修改
git revert和git reset的区别:
git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区