如何解决github fork之后 更新问题

本文首发简书 http://www.jianshu.com/p/840ea273f25a

问题

github上fork之后,原始分支有改动,该如何同步原始分支呢? 还是需要google下, 作为一个小技巧!
下面就以我的 google官方android-architecture为例说明。
习惯使用【Git Bash】方式,本文就以命令行操作!

命令行操作

操作之前,先看下 fork之后github的更新提示。

提示原始分支有17个commit提交

step 1

使用GitBash进入到项目目录,简单的方式是从文件管理器中,打开GitBash, 或者是Window CMD.

window直接在目录栏输入cmd

windows 右键选择GitBash

step 2 git remote add upstream xxxx

与上游仓库同步代码之前,必须配置 remote,指向上游仓库 本文为例, 上游原始仓库为:
https://github.com/googlesamples/android-architecture.git

git remote add upstream https://github.com/googlesamples/android-architecture.git

格式类似:

git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

使用如下命令查看下:git remote -v

$ git remote -v
origin  https://github.com/tancolo/android-architecture.git (fetch)
origin  https://github.com/tancolo/android-architecture.git (push)
upstream        https://github.com/googlesamples/android-architecture.git (fetch)
upstream        https://github.com/googlesamples/android-architecture.git (push)

上部分是自己远程仓库,下部分是上游仓库地址!

step 3 git checkout master

我习惯是fork的项目,一般不在主分支修改,自己另建分支, 所以, 切换到本地master分支!

git checkout master

step 4 git fetch upstream

git fetch upstream

结果如下图, 上游仓库涉及的分支比较多!

git fetch upstream

step 5 git merge upstream/master

$ git merge upstream/master
Updating 5762466..4849c04
Fast-forward
 README.md | 121 +++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 68 insertions(+), 53 deletions(-)

step 6 git push origin master

$ git push origin master
Counting objects: 45, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (45/45), 11.83 KiB | 0 bytes/s, done.
Total 45 (delta 26), reused 40 (delta 21)
remote: Resolving deltas: 100% (26/26), completed with 2 local objects.
To https://github.com/tancolo/android-architecture.git
   5762466..4849c04  master -> master

刷新github页面

刷新页面

要是想更新其他分支,需要执行

1. git checkout 其他分支名
2. git merge upstream/其他分支名
3. git push origin 其他分支名

步骤总结

  • 1 bash进入项目目录
  • 2 git remote add upstream 上游仓库名称.git
  • 3 git checkout master
  • 4 git fetch upstream
  • 5 git merge upstream/master
  • 6 git push origin master

参考

http://jinlong.github.io/2015/10/12/syncing-a-fork/
https://www.zhihu.com/question/20393785

GitHub中的fork是指将别人的代码库复制到自己的代码库中,并在自己的库中进行修改和改进。通过fork,你可以在托管平台上找到一个有趣的项目,将其复制到自己的库中,并对其进行修改和改进。一旦你对该项目做出了重要的改动,你可以向原项目提交一个pull request,请求将你的代码合并到原项目中。如果原项目的维护者接受了你的请求,你的代码就有可能会出现在原项目中了。通过fork和pull request的方式,GitHub为开源项目的贡献者提供了一个便捷的途径,使得合作和贡献变得更加容易和开放。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [github/gitlab中的fork操作](https://blog.csdn.net/m0_62357580/article/details/131050976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [GitHubFork是什么意思](https://blog.csdn.net/weixin_30765319/article/details/99916482)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值