您好我是git的新手,我不明白git reset
和git revert
之间的基本区别是什么。 git revert
是否会恢复正在推送的合并?
答案 0 :(得分:25)
据我所知,他们做的完全不同。
git revert
旨在恢复先前提交的效果。例如,
A <- B <- C
^ HEAD
如果我发现B我之前犯了错误,我想&#34;撤消&#34;它的变化,git-revert
- B将导致:
A <- B <- C <- B'
^ HEAD
B'
正在逆转B中所做的更改。
git reset
更直接,只是将HEAD设置为某个提交,
A <- B <- C
^ HEAD
git-reset
- 告诉B会给你
A <- B <- C
^ HEAD
答案 1 :(得分:1)
git revert:通过创建新提交来撤消对本地/源代码库的提交的更改部分。
command: git revert <id>
git reset:Git reset 将删除/撤消在本地存储库中提交的更改。它通过 3 种方式撤消更改,–soft、–mixed、–hard。其中混合是默认值。
Working Dir (coding) -> Staging Area(Index) -> local Repo (git push)
git reset –soft/mixed/hard –HEAD~N -> mixed is default
git reset --soft HEAD~N # will move file/changes from local commit to staging area
git reset --mixed HEAD~N #will move file/changes from local commit to working directory
git reset --hard HEAD~N #will delete file /changes from working directory
答案 2 :(得分:0)
Git reset - &gt;将分支的提示移动到另一个提交。这可用于从当前分支中删除提交。它通过提交向后移动分支。 Git Revert - &gt;通过创建新提交撤消提交。这是撤消更改的安全方法,因为它无法重写提交历史记录。