git仓库同步两个远程仓库

GitHub127 次阅读5 分钟

image.png

假设有两个存储库 URL,并希望同步它们以便它们包含相同的内容。

必须在 Git 中配置一个指向上游仓库的远程仓库,以便将您在分支中所做的更改同步到原始仓库。这也允许您将原始仓库中的更改同步到分支中。

若需双向同步(配置远程仓库 origin、upstream),举例拉取 unpstream 最新代码,同步到 master 分支,可采用以下方法:

1. 配置双远程仓库

查看你的 fork 当前配置的远程仓库地址:

$ git remote -v
 origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
 origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

指定当前 fork 将要同步的上游远程仓库地址:

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITO

2.验证一下你刚指定的上游仓库地址:

$ git remote -v
 origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
 origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
 upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
 upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

3. 拉取所有远程更新

从上游仓库拉取分支及其对应的提交记录。对于 master 的提交会保存在一个本地分支 upstream/master 里。

$ git fetch upstream
 remote: Counting objects: 75, done.
 remote: Compressing objects: 100% (53/53), done.
 remote: Total 62 (delta 27), reused 44 (delta 9)
 Unpacking objects: 100% (62/62), done.
 From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch] master -> upstream/master

4. 合并并推送

签出你的 fork 的本地 master 分支

$ git checkout master
 Switched to branch ‘master’

把 upstream/master 中的变更合并到本地的 master 分支里。这样你的 fork 的 master 分支就和上游仓库同步了,也不会丢失本地的更改。

$ git merge upstream/master
 Updating a422352..5fdff0f
 Fast-forward
 README | 9 — — — -
 README.md | 7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

把更改推送到服务器:

$ git push

继续阅读

基于全文检索与主题相似度