簡體   English   中英

如何更改遠程跟蹤分支指向的提交?

[英]How can I change the commit a remote-tracking branch points to?

我有一個名為appsec/master的遠程跟蹤分支,我想將其設置為HEAD 我通常使用git branch -f <branch> <commit>來設置本地分支,但是執行branch branch -f appsec/master HEAD會導致創建一個新的本地分支appsec/master

如何在執行git push -f -u <upstream> <branch>之前明確設置遠程跟蹤分支?

(master %<>)$ git log --graph --oneline --decorate --all -n 25
* 211e9d7 (HEAD -> master) Working version of scanner
| * c5a9ec4 (appsec/master) Added regex.json
|/
...

注意:我知道這個問題有點綜合性,因為我永遠不應該執行git push -f或手動修改遠程跟蹤分支,但在這種情況下,我使用我自己的存儲庫,沒有合作伙伴。

您不能“設置”遠程跟蹤分支,它們是您上次檢查時從遠程獲取的內容的設計圖像。

但是,您可以在本地分支上設置任何引用,然后將其強制推送到遠程。 然后,簡單地從中獲取也會更新您的遠程跟蹤分支。

您在本地計算機上的遠程分支也有顯示,但默認情況下它們是隱藏的。 您可以使用git branch --all查看它們的列表。 因此,即使您沒有 inte.net 連接,您也可以合並遠程分支(在本地緩存)。 因此,您可以簡單地運行git push --force appsec master 然后運行git fetch以將所有更改從服務器接收到本地遠程分支。 查看git 遠程分支

您可以使用git update-ref在沒有任何推送或拉取的情況下執行此操作:

git update-ref refs/remotes/REMOTE_NAME/BRANCH_NAME NEW_COMMIT OLD_COMMIT

git update-ref將為您驗證ORIGIN_NAME/BRANCH_NAME在更新為OLD_COMMIT之前確實指向NEW_COMMIT 如果您不需要此驗證,則可以省略OLD_COMMIT

在問題中,它將是git update-ref refs/remotes/appsec/master HEAD

您可以使用git show-ref列出所有參考。

暫無
暫無

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

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