簡體   English   中英

硬推到遠程后,Git重置本地存儲庫

[英]Git Reset local repository after hard push to remote

我們有一個針對源git存儲庫的持續集成構建過程。 當流程運行時,CI流程會將其輸出推送到發布存儲庫中。 我的問題與以下情況有關。

  1. 我們的CI服務器從源構建,並將結果推送到我們的發布存儲庫。
  2. 開發人員簽出發行版本存儲庫,添加架構更改腳本(我們的CI流程未添加),然后修改先前的提交並執行強制推送操作(以不因添加而導致添加其他提交)腳本)。
  3. 下次CI進程運行並嘗試推送其輸出時,我們將收到以下錯誤“由於當前分支的尖端位於其遠程對應的后面,因此更新被拒絕。”

我想做的是告訴CI服務器將本地存儲庫重置為與遠程倉庫完全匹配。 我看過幾個類似的問題,它們都說要運行以下命令(或非常類似的命令)。

  1. git fetch --all
  2. git reset --hard [remote repository]

即使在構建過程之前運行了這些命令,我​​仍然會遇到相同的錯誤。 關於我應該做什么的任何想法? 或者,如果我想做的事情甚至是可能的。

因此,似乎我可能正在重置錯誤的存儲庫。 我已更改命令以執行以下操作(最后一步可能是不必要的)

git fetch --all 
git reset --hard @{u}
git pull

@{u}告訴git重設當前已檢出的任何分支,從而無需手動指定分支(我一定做錯了)。

另一項感興趣的項目。 如果您正在Power Shell腳本中運行命令(我們的CI服務器如何運行這些操作),則必須編寫git reset,如下所示(因為花括號會導致解析錯誤)。

git reset --hard "@{u}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM