blog icon indicating copy to clipboard operation
blog copied to clipboard

同步你的 Github fork

Open yanyue404 opened this issue 5 years ago • 0 comments

前言

选择拥抱开源,无疑参与 github的开源项目是最好的选择,先从同步 fork 仓库开始做起!

一、确认本地 fork 仓库版本是否落后于原仓库

1. 查看 github fork 仓库后的 commit数量及提交日志

本地 clone 自己仓库 后的 commit log 日志,与 gihub 上一致

2. 查看原仓库的相关信息,比较

比较后得知:本地 fork仓库的版本落后于原始仓库

下一步计划,准备开始同步!

二、 同步

1. 查看本地仓库设置的远端仓库,是否有连接上游原始远端仓库

如果未连接上游仓库,添加远程仓库的变量地址

$  git remote -v

origin  https://github.com/xiaoyueyue165/taro.git (fetch)
origin  https://github.com/xiaoyueyue165/taro.git (push)
  • 添加上游仓库
$ git remote add upsteream https://github.com/NervJS/taro.git

  • 再次查看远程仓库指向地址列表,确认添加
$  git remote -v
origin  https://github.com/xiaoyueyue165/taro.git (fetch)
origin  https://github.com/xiaoyueyue165/taro.git (push)
upsteream  https://github.com/NervJS/taro.git (fetch)
upsteream  https://github.com/NervJS/taro.git (push)

2. fetch,取回原仓库的更新

$ git fetch upsteream

默认情况下,git fetch 取回所有分支(branch)的更新

3. 将 fetch 后的更新内容合并至主分支

所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如upsteream主机的master,就要用 upsteream/master 读取。

$ git merge upsteream/master

此时会发现本地 master 分支的 commit 日志已经与原仓库的日志保持一致

  • 本地 master

  • 原始仓库

4.更新,推送至远端 master 分支

$ git push origin master

  • 自己 fork 的 仓库变化, commit 数量与 最新日志与原仓库一致

5. 同步远程的 tag


# 添加主仓库到 remote
git remote add upstream [email protected]:vant-ui/vant.git

# 拉取主仓库最新代码
git fetch upstream

# 切换至 main 分支
git checkout main

# 合并主仓库代码
git merge upstream/main

# 发布到自己 fork 的项目,origin 是自己的源地址

git push origin main

同步 tag

# 同步分支后查看合并后分支的 tag 版本情况,会看到很多 upstream 源才有的 tag
git tag

# 上一步如果不对再获取一下(可省略)
git fetch upstream --tag

# 把 tag 同步到自己的源
git push origin --tags

参考

yanyue404 avatar May 19 '19 03:05 yanyue404