我們正在用git存盤交換機的組態檔(現在看來這不是最好的主意...)。 現在的問題是,我已經更新了交換機,并將我的更改寫入了檔案,現在我注意到上游也發生了更改。
由于我的本地已提交的配置是最新的,我想把我的檔案放在上面(不僅僅是我所做的更改),但要替換所有上游的潛在更改,而不丟失上游的歷史。
也許一張圖片可以幫助到你:
before:
*-*-*-* origin/master
@ master (local)
之后。
*-*-*-*-@ origin/master, master (local)
通常情況下,我會做一個rebase,但這將包括所有從上游對這些檔案所做的修改。
一個 "解決方案 "是洗掉我的提交。 但這并不是真正的 git'ish(因為我的問題本身可能),而且我可能在未來不得不再次這樣做,所以我可能會問一個更好的方法。
uj5u.com熱心網友回復:
你用checkout來做這個
git checkout origin/master
git checkout master -- the-file # 把檔案設定成本地主分支的樣子
git commit "There you go"
git push origin HEAD:master # 在遠程設定成這樣
git checkout master
git reset --hard origin/master # 將本地主干分支設定為 origin/master 中的樣子
如果我們談論的是整個專案(許多檔案,而不僅僅是一個),那么你將更適合使用 reset --soft
git checkout master
git reset --soft origin/master # 將分支指標設定為 origin/master 檔案的內容不改變
git commit -m "在這里我把它設定成本地主干"
# 該提交是在 master.... 上完成的,所以不需要入侵 master......只要推送到遠程即可
git push origin master
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/308172.html
標籤:
