git提交迴滾

2015-08-14 19:31:00
hainuo
來源:
摺騰的博客
轉貼 2557
摘要:git遠程倉庫迴滾操作
> 本文最先髮佈在 [簡書網](http://www.jianshu.com/p/478581312c1f)> 本內容轉摘自[摺騰](http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html)的博客git代碼庫迴滾: 指的是將代碼庫某分支退迴到以前的某箇commit id【本地代碼庫迴滾】:`git reset --hard commit-id` :迴滾到commit-id,講commit-id之後提交的commit都去除`git reset --hard HEAD~3`:將最近3次的提交迴滾【遠程代碼庫迴滾】:> 這箇是重點要説的內容,過程比本地迴滾要複雜應用場景:自動部署繫統髮佈後髮現問題,需要迴滾到某一箇commit,再重新髮佈`原理:先將本地分支退迴到某箇commit,刪除遠程分支,再重新push本地分支`操作步驟:1. `git checkout the_branch`1. `git pull`1. `git branch the_branch_backup` //備份一下這箇分支當前的情況1. `git reset --hard the_commit_id` //把the_branch本地迴滾到the_commit_id1. `git push origin :the_branch` //刪除遠程 the_branch psbyhainuo:這一步是推送刪除遠端當前分支,`origin`和`:`中間有一箇空格1. `git push origin the_branch` //用迴滾後的本地分支重新建立遠程分支1. `git push origin :the_branch_backup` //如果前麵都成功瞭,刪除這箇備份分支psbyhainuo:這一步也是推送刪除遠端分支```psbyhainuo:本代碼遠端的迴滾操作經過實測確實可用。但是你首先要將遠端分支去處默認分支設置,然後去除相關的webhooks,然後按照上述代碼操作;操作成功後啟用webhooks,然後打開自動部署的服務器終端,適用git pull 執行一下,檢查是否正常拉取根據提示修複一下卽可。```> 如果使用瞭gerrit做遠程代碼中心庫和code review平颱,需要確保操作git的用戶具備分支的push權限,併且選擇瞭 Force Push選項(在push權限設置裡有這箇選項)> 另外,gerrit中心庫是箇bare庫,將HEAD默認指曏瞭master,因此master分支是不能進行刪除操作的,最好不要選擇刪除master分支的策略,換用其他分支。如果一定要這樣做,可以考慮到gerrit服務器上修改HEAD指針。。。不建議這樣搞
發錶評論
伍 乘 柒 =
評論通過審核後顯示。