git reset + commit号 git reset命令后面是需要加2种参数的:"--hard"和"--soft"。这条命令默认情况下是"--soft"。执行上述命令时,这该条commit号之后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。使用git status命令可以在缓冲区中看到这些修改。而如果加上"--hard"参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。但需要注意的一个问题是:由于这样的重置是直接在本地的修改,无法提交到远程服务器,如果直接丢弃的内容已经被推到远程服务器上了,则会造成本地和服务器无法同步的问题。即git reset --hard只能针对本地操作,不能针对远程服务器进行同样操作。如果从本地删掉的内容没有推到服务器上,则不会有副作用;如果被推到服务器,则下次本地和服务器进行同步时,这部分删掉的内容仍然会回来。 而上面注意中提到的问题则可以很好的被git revert 命令解决。 git revert + commit 号 该命令撤销对某个commit的提交,这一撤销动作会作为一个新的修改存储起来,这样,当你和服务器同步时,就不会产生什么副作用。 |
|