git reset和git revert有什么区别?

ara*_*nid 8 git

嗨,我是git的新手,我不明白git reset和之间的基本区别是什么git revert.是否git revert还原了合并?

Adr*_*hum 26

据我所知,他们做的完全不同.

git revert旨在恢复先前提交的效果.例如,

A <- B <- C 
          ^ HEAD
Run Code Online (Sandbox Code Playgroud)

如果我发现之前提交的BI错误,并且我想"撤消"其更改,则git-revert-ing B将导致:

A <- B <- C <- B'
               ^ HEAD
Run Code Online (Sandbox Code Playgroud)

为此B'逆转了B中所做的改变.

git reset 更简单,它只是将HEAD设置为某个提交,

A <- B <- C 
          ^ HEAD
Run Code Online (Sandbox Code Playgroud)

git-reset- B会给你

A <- B <- C 
     ^ HEAD
Run Code Online (Sandbox Code Playgroud)