起因:現場開發和公司內部開發相結合,一段時間雙方未同步,但可以肯定現場的**最新,所以回公司後就拿本機**覆蓋遠端倉庫**。
步驟如下:
首先,我遠端倉庫的config檔案裡設定過如下內容(預設新建的git倉庫是不允許被修改的,所以這裡放開修改許可權):
[receive]
denycurrentbranch = ignore
其次,執行如下命令,用本地檔案直接覆蓋遠端倉庫:
原文如下:
有時候由於某些誤操作(如錯誤的將其他分支merge
過來),導致遠端分支錯誤,需要強制覆蓋遠端分支。可以使用命令git push origin branch-name --force
來強制覆蓋。
不過,基於安全性考慮,你的遠端 git 可以禁止改操作,你可以通過修改遠端倉庫的config
檔案來臨時允許覆蓋操作:
[receive]覆蓋完成之後,記得把這個標誌再改回denynonfastforwards
=false # change to false to enable overwriting
true
,以提高倉庫的安全性,避免錯誤的覆蓋操作。
注意如果遠端的**倉庫為多個人共享訪問時,其他人的push
操作可能會再次將錯誤的merge
引入遠端分支(因為其他人本地存放的分支仍然是舊的)。除非事先和所有的成員溝通好,讓大家將本地的錯誤分支刪除,否則這種方式不可取。
因此,如果是團隊開發,最好是使用revert
命令來回滾,而不是覆蓋。這樣雖然歷史記錄不太乾淨,但是比較安全。回滾乙個merge
的命令如下:
gitrevert
merge
-commit
-hash-m
1
git本地ben遠端分支 git本地及遠端分支回退
1.git本地版本回退 git reset hard commit id 可用 git log oneline 檢視 2.git遠端版本回退 git push origin head force 遠端提交回退 下面的命令也可以實現遠端版本回退 git reset hard head 1 git pu...
git本地版本回滾與遠端版本回滾
1 檢視git 提交 git log 該命令顯示從最近到最遠的提交日誌。hard選項,表示徹底將工作區 暫存區和版本庫記錄恢復到指定的版本庫 遠端分支版本回退的方法 1.首先要回退本地分支 git reset hard commitid 2 強制推送到遠端分支 git push f origin m...
git推送本地分支到遠端的方法
1.遠端有分支,直接將分支拉到本地 進行開發 2.本地開啟乙個新的分支,推送至遠端 git checkout b branchname origin branchname 撿出遠端的branchname分支到本地.第乙個branchname是你新建本地分支的名字,origin branchname ...