薛定谔的猿

薛定谔的猿

Git常用命令

27
2024-04-06

常用命令

1、仓库地址修改(本地)

1、产看当前远程仓库地址

git remote -v

2、修改本地远程仓库地址

git remote set-url origin https://new-url.com/repo.git

2、回滚操作

  • git log 查看分支提交历史记录

  • git reset --hard [commit_id] 回退到 commit_id版本

  • git push origin [branch-name] 推送到远程分支(强制: git push -u origin [branch-name] -f)

  • reset还是revert?

    reset和revert都可以用来回滚代码。区别: reset是用来"回退"版本,而revert是用来"还原"某次或者某几次提交

    例子:

42eae13 (HEAD -> master) 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

执行 git reset --hard 97ea0f9,这个时候,git的提交历史变为:

97ea0f9 (HEAD -> master) 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

可以看到master当前指向97ea0f9这个版本,我们回到了第三次修改。

使用reset命令,Git会把要回退版本之后提交的修改都删除掉。要从第四次修改回退到第一次修改,那么会删除第二、三、四次的修改。【注:这里并不是真正的物理删除】

那如果发现第三次修改有错误,想要恢复第三次修改,却要保留第四次修改呢?

git revert -n 97ea0f9
git commit -m "恢复第三次修改"

Git提交历史会变成:

33b8b30 (HEAD -> master) Revert "恢复第三次修改"
42eae13 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

实际上,Git把第三次修改从提交中剔除(还原)了,还保留了第四次修改,并且产生了新的commit_id。

  • 总结

    在确认要回滚的版本之后,如果别人没有最新提交,那么就可以直接用reset命令进行版本回退,否则,就可以考虑使用revert命令进行还原修改,不能影响到别人的提交。

  • 1