git reset和revert

reset:
如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。
1、找到自己要修改的分支输入git log查看历史版本号
例如:deab40为最新版本

  1. deab40e283919e0ee733c482d1e9558ce9e82aca
  2. f8747d8e2f81da872b008c617ab7a536a17b6090
  3. f86ee1b6726695c19f21cea8dde27aa9ffc4c6df
    2、使用“git reset --hard 目标版本号”命令将版本回退到版本 2) :
    输入命令:git reset --hard f8747d8
    再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本,已经回退到版本 f8747d8
    3、使用“git push -f”提交更改:
    此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,我们用“git push -f”强制推上去,就可以了。

git revert:
git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我 们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。
1、git log 查看历史版本号
2、使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交:
(1)反做,使用“git revert -n 版本号”命令。如下命令,我们反做版本号为f8747d8的版本: git revert -n f8747d8e2f81da872b008c617ab7a536a17b6090
注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。
(2)提交,使用“git commit -m 版本名”,如:
git commit -m “revert add xxx.xx”
此时可以用“git log”查看本地的版本信息,可见多生成了一个新的版本,该版本反做了“add xxx.xx”版本,但是保留了“add xxx.xx1”版本:
3.使用“git push”推上远程库。

有更新但是没有先pull然后commit了东西导致推不上去:
先拉取再合并再推送

你可能感兴趣的:(git命令,git)