### Git完成push操作后想撤銷
* * * * *
對于已經把代碼push到線上倉庫,你回退本地代碼其實也想同時回退線上代碼,回滾到某個指定的版本,線上,線下代碼保持一致.你要用到下面的命令
#### revert
`git revert`用于反轉提交,執行revert命令時,要求工作樹必須是干凈的.
`git revert`用一個新提交來消除一個歷史提交所做的任何修改.
`revert` 之后你的本地代碼會回滾到指定的歷史版本,這時你再 `git push`就可以把線上的代碼更新.(這里不會像reset造成沖突的問題)
revert 使用,需要先找到你想回滾版本唯一的commit提交版本標識代碼,可以用 git log 或者在adgit搭建的web環境歷史提交記錄里查看.
~~~
git log
....
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
~~~
通常,前幾位即可
~~~
git revert c011eb3
~~~
`git revert`是用一次新的commit來回滾之前的`commit`,`git reset`是直接刪除指定的`commit`,看似達到相同的效果,其實完全不同.
第一:
上面我們說的如果你已經push到線上代碼庫, reset 刪除指定commit以后,你git push可能導致一大堆沖突.但是revert 并不會.
第二:
如果在日后現有分支和歷史分支需要合并的時候,reset 恢復部分的代碼依然會出現在歷史分支里.但是revert 方向提交的commit 并不會出現在歷史分支里.
第三:
reset 是在正常的commit歷史中,刪除了指定的commit,這時 HEAD 是向后移動了,而 revert 是在正常的commit歷史中再commit一次,只不過是反向提交,他的 HEAD 是一直向前的.
- 目錄
- 撤銷
- Git reset
- Git revert
- Git reset 命令
- Git的撤消操作 - 重置, 簽出和撤消
- 沖突
- 解決Git合并分支發生的沖突
- BASH
- 復制黏貼
- 教程
- 合并
- 合并提交
- 分支
- Gitee(碼云)
- Github
- 免費私有庫
- 本地倉庫推送到github倉庫
- 工具
- SourceTree
- 添加git-bash.exe到環境變量
- Git
- 安裝
- 配置
- 命令行
- 10個技巧讓開發者的Git水平迅速提升
- 3.2 Git 分支 - 分支的新建與合并
- 遠程分支
- Git幫助
- Git幫助
- 顯示命令幫助
- Git 命令
- 參數配置
- 還原至上次提交
- Git 操作命令
- Git tag
- Git 分支管理
- 認識分支
- 賣主分支
- 分支操作
- 本地倉庫遠程提交
- Git 分區
- 認識里程碑
- 忽略文件
- 已有項目
- 《Git權威指南》