[英]Maintaining a clone of a git repository
我想在(自托管)bitbucket 服務器中克隆 github 存儲庫,並不時從 github 存儲庫中提取最新更改。 在我們的克隆中,我們將做一些永遠不會離開我們的存儲庫的實驗性內容。
為了顯示; 對於fossil,我會確保我們的存儲庫和他們的存儲庫具有相同的項目ID,我會這樣做:
$ cd ~/checkout/prjdir
$ fossil pull https://their.org/prj/foo --once
這將獲得所有最新的簽入、分支、標簽等。然后將其推送到我們組織的服務器:
$ fossil push
永遠不會有任何沖突; 我們的更改將在實驗分支上進行,因此從上游更新時無需任何合並。
我嘗試復制化石工作流程並復制/粘貼一些似乎相關的內容,並為初始克隆提出以下建議:
$ git clone https://github.com/foo/bar.git
$ cd bar
$ git remote set-url origin https://ourbitbucket.org/foo/bar.git
$ git push -u origin master
然而,這似乎並沒有帶來標簽(標簽對我們很重要)。
使用 git(github 作為上游,我們的 bitbucket 服務器用於我們自己的標簽/分支):
不要更改存儲庫的 URL。 只需創建兩個遙控器, upstream
和origin
。
默認情況下不推送標簽。 使用--tags
來推送它們。
$ git clone https://github.com/foo/bar.git
$ cd bar
$ git remote rename origin upstream
$ git remote add origin https://ourbitbucket.org/foo/bar.git
$ git push -u --tags origin master
每當您想與上游同步時,請執行
$ git checkout master
$ git pull upstream master
甚至
$ git reset --hard upstream/master
並重新設置您的分支(或將 master 合並到其中)以將他們的更改合並到您的工作中:
$ git checkout my-branch
$ git rebase master
或者
$ git checkout my-branch
$ git merge master
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.