我git push了一个文件,commit id是A,然后我当时不想要这文件了,就执行git revert A了,然后git revert A的commit id 是B,后来发现这文件必须得加上我就执行了git revert B,这样那个文件到底是push上去了还是被撤下来了呀?
解答:若未push到服务器则用git reset
,
若已push到服务器,则继续git revert
git log -3
commit-id_1
commit-id_2
commit-id_3
git revert commit-id_1
此时 会生成新的commit-id_0 最新的改动回退到了 commit-id_2
git log -4
commit-id_0
commit-id_1
commit-id_2
commit-id_3
如果你不想做任何修改, 若未push到服务器则用git reset --hard commi-id_1 远程的commit不会改变
若push到服务器则用git revret commi-id_0 远程的commit会递增
git revert commit-id_1
通常情况下,上面这条revert命令会让程序员修改注释,这时候程序员应该标注revert的原因,假设程序员就想使用默认的注释,可以在命令中加上--no-edit参数。另一个重要的参数是-n或者--no-commit,应用这个参数会让revert 改动只限于程序员的本地仓库,而不自动进行commit,如果程序员想在revert之前进行更多的改动,或者想要revert多个commit,这个参数尤其好用。