我正在使用來自私人網站的存盤庫,并希望從公共存盤庫中提取更改。命令看起來像
git clone -b b1 https://private_git.com
# fetch branch dev from https://github.com/repo_name
具體來說,我想獲取分支“dev”。什么是正確的命令?
更新:
我嘗試了以下命令:
$ git clone -b b1 https://private_git.com/my_repo
$ cd my_repo
$ git remote add origin https://github.com/repo
fatal: remote origin already exists.
$ git fetch origin dev
Username for 'https://private_git.com':
我認為致命錯誤很好,因為第一次,我克隆了公共倉庫,然后將其上傳到私有域。如您所見,當我想獲取“dev”分支時,它會要求來自私有域的用戶/密碼。我希望從 github 獲取。
uj5u.com熱心網友回復:
我認為致命錯誤很好......
它不是。
在Git 術語中, remote是一個短名稱:
- 存盤一個 URL,并且
- 當您想與回應該 URL的Git 軟體交談時,事情會變得更容易。
當您運行時git clone,這將創建一個新的空 Git 存盤庫,然后運行git remote add以將一個遠程添加到您的 Git 存盤庫。默認情況下——通常你不應該改變它——首先,并且僅對大多數人來說,remote 被命名為origin。所以origin告訴你你在哪里克隆了你的存盤庫。
你想要:
- 克隆一個私有存盤庫,然后
- 從不同的公共存盤庫獲取額外的提交
因此您應該使用兩個遙控器,一個用于私有存盤庫,一個用于公共存盤庫。您為這兩個遙控器選擇的名稱取決于您:您可以呼叫私人遙控器fred和公共遙控器,barney或者wilma如果您愿意,或者您可以繼續呼叫一個origin并呼叫另一個public,或者private如果您愿意。
是否呼叫公共存盤庫origin,或呼叫私有存盤庫origin,或origin根本使用,由您決定。但大多數人大多會期望該名稱origin指代您從哪里獲得存盤庫和/或您希望發送新提交的任何地方。考慮到這兩個因素。
然后,如果您決定分別呼叫它們private,public例如,您可以這樣做:
git clone -o private -b b1 https://private_git.com/my_repo
cd my_repo
# now fetch branch dev from https://github.com/repo_name
git remote add public https://github.com/repo_name
git fetch public dev
您現在將擁有兩組遠程跟蹤名稱:private/*參考私有存盤庫提交和分支名稱,并public/dev參考dev來自存盤庫的分支public。(這假設您的 Git 版本是 1.8.2 或更高版本。)
請注意,您的-b b1in your告訴您的 Git 軟體在克隆程序之后在git clone本地創建分支。b1為了成功,這要求私有存盤庫有一個名為 的分支b1,因此您將擁有一個private/b1. 由于您沒有使用--single-branch或--depth選項,因此您將擁有private/*所有其他分支的名稱。你不會有一個名為 的遙控器origin,這可能會使一些人感到困惑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497535.html
標籤:混帐
