我一直在與我的團隊討論并在互聯網上搜索,但我無法弄清楚如何基于 GitHub 上托管的遠程分支在本地創建一個新的 git 分支。似乎應該有辦法做到這一點。
我嘗試了以下操作,但是當我推送時,它推送到不正確的 (origin/release/1.0) 分支,而不是推送到 GitHub 上的新分支 (feature/123)。
git checkout -b feature/123 origin/release/1.0
目前,有效的作業流程是:
git checkout release/1.0
git pull
git checkout -b feature/123
不過,我必須這樣做很多,感覺我應該能夠跳過必須在本地拉入 release/1.0 分支,而是使用一個命令創建我的分支。
有沒有辦法做到這一點,或者我們是否必須繼續拉入最新版本,然后從本地分支?
解決方案
更新全域 git 配置
git config --global branch.autoSetupMerge false
從最新版本創建新分支
$ git fetch --all
$ git checkout -b feature/123 origin/release/1.0
$ git push --set-upstream origin feature/123
uj5u.com熱心網友回復:
當您從遠程分支分支時,Git 會自動將遠程分支設定為“跟蹤分支”。這是它在推和拉時將使用的遠程分支。
$ git checkout -b feature/123 origin/release/1.0
Branch 'feature/123' set up to track remote branch 'release/1.0' from 'origin'.
Switched to a new branch 'feature/123'
您不希望它跟蹤遙控器。你可以用 關閉它--no-track。
$ git checkout --no-track -b feature/123 origin/release/1.0
您可以使用branch.autoSetupMerge.
$ git config --global branch.autoSetupMerge false
現在 feature/123 沒有跟蹤分支。當您運行時,git push它必須猜測將分支推向何處。這可以用push.default. 您可能想要simple哪個是默認值。
簡單 - 在遙控器上推送具有相同名稱的當前分支。
不過,我必須這樣做很多,感覺我應該能夠跳過必須在本地拉入 release/1.0 分支,而是使用一個命令創建我的分支。
請注意,您仍然必須git fetch使用遙控器以確保您擁有最新版本。
git fetch origin
git checkout -b feature/123 origin/release/1.0
這是 Git 的去中心化特性,它不假設您與遙控器有連接。雖然只是git fetch定期進行是安全的。
并且為了確保您的功能分支與最新更改保持同步,您必須定期從 release/1.0 更新您的分支。
git fetch origin
git rebase origin/release/1.0
這就是與他人合作的本質。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378014.html
