git放弃上一次commit
要放弃上一次的commit,并保留代码更改,可以使用以下命令:
git reset --soft HEAD^
如果你想放弃commit并且也放弃代码更改(慎用,这会丢失所有未提交的更改),可以使用:
git reset --hard HEAD^
git退回到某次commit
方法一:使用 git reset --hard
命令
注意:此操作会丢弃所有后续 commit 中的更改且不可恢复,请确保你不需要这些更改或已做了备份。
-
首先,查看提交历史以找到你要回退到的 commit 的哈希值(SHA-1 或短哈希格式均可):
Bash
1git log --oneline
或者,如果你知道部分 commit 信息,可以使用
git log
并配合grep
进行搜索。 -
找到目标 commit 后,复制其哈希值。
-
使用
git reset --hard
将当前工作目录和暂存区都恢复到所选 commit 状态:Bash
1git reset --hard <commit_id>
其中
<commit_id>
是你从git log
中找到的目标 commit 的哈希值。
方法二:使用 git revert
命令
这种方法不会丢弃任何提交,而是创建一个新的反向提交,使项目状态回到指定 commit 时的样子。
-
查找并确定目标 commit 的哈希值,同上。
-
使用
git revert
命令来撤销指定 commit 及其后的更改:Bash
1git revert <commit_id>
这会生成一个新的提交,它包含了撤销
<commit_id>
中更改的操作。
版本管理
tag
提交tag
git tag -a v2.0.0 -m "重写"
删除tag
git tag -d <tagname>
本地覆盖远端
git push origin master --force-with-lease
远端同步本地
git pull origin your-branch-name