GitHub自己仓库fork的项目与开源项目的代码保持一致

步骤(此处用的是Alibaba/fastjson):

1.将开源项目fork到自己账号下的仓库中;

2.将自己仓库中fork的项目clone到本地;

3.clone

需要将远程仓库clone到本地,此处省略安装本地github的过程,随便在哪个目录(项目存放的目录),右键打开一个Git base,执行一下git clone https://github.com/***/***.git

4.上面的命令完成后,当前目录下会多一个目录,我clone的是fastjson,所以会多一个fastjson目录,进到fastjson目录中,试试跑一下git status试试,会提示现在是master分支。

5.用git remote -v命令,可以看到此时只与自己的远程仓库建立了连接

6.还需要与上游建立连接,这里上游指的是一开始fork的那个项目源,以flink为例,执行如下命令:

git remote add upstream https://github.com/apache/flink.git

再用git remote -v可以看到.

此处我自己的仓库的代码是很久以前fork的,所以提交落后源代码alibaba/master很多;一些步骤使自己仓库分支与alibaba/master

代码保持一致

7.先fetch  : git fetch upstream

8.再rebase :git rebase upstream/master

9.最后再push master

push完后,远程仓库便可看到你的branch版本和master分支一致了,否则这个位置会显示与master相差了多少次commit

命令操作步骤:

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git remote -v
origin  https://github.com/canglang1973/fastjson.git (fetch)
origin  https://github.com/canglang1973/fastjson.git (push)

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git remote add upstream https://github.com/alibaba/fastjson.git

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git remote -v
origin  https://github.com/canglang1973/fastjson.git (fetch)
origin  https://github.com/canglang1973/fastjson.git (push)
upstream        https://github.com/alibaba/fastjson.git (fetch)
upstream        https://github.com/alibaba/fastjson.git (push)

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git fetch upstream
remote: Counting objects: 3944, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 3944 (delta 1655), reused 1673 (delta 1655), pack-reused 2271
Receiving objects: 100% (3944/3944), 681.27 KiB | 21.00 KiB/s, done.
Resolving deltas: 100% (1903/1903), completed with 285 local objects.
From https://github.com/alibaba/fastjson
 * [new branch]      1.1.33-android -> upstream/1.1.33-android
 * [new branch]      1.1.42_android -> upstream/1.1.42_android
 * [new branch]      1.1.43-android -> upstream/1.1.43-android
 * [new branch]      1.1.44     -> upstream/1.1.44
 * [new branch]      1.1.44-android -> upstream/1.1.44-android
 * [new branch]      1.1.45     -> upstream/1.1.45
 * [new branch]      1.1.45-android -> upstream/1.1.45-android
 * [new branch]      1.1.46     -> upstream/1.1.46
 * [new branch]      1.1.46-android -> upstream/1.1.46-android
 * [new branch]      android    -> upstream/android
 * [new branch]      dev-1.2.0  -> upstream/dev-1.2.0
 * [new branch]      master     -> upstream/master
 * [new branch]      revert-1513-master -> upstream/revert-1513-master
 * [new tag]         1.1.64.android -> 1.1.64.android
 * [new tag]         1.1.65.android -> 1.1.65.android
 * [new tag]         1.1.66.android -> 1.1.66.android
 * [new tag]         1.1.67.android -> 1.1.67.android
 * [new tag]         1.1.68.android -> 1.1.68.android
 * [new tag]         1.2.39     -> 1.2.39
 * [new tag]         1.2.40     -> 1.2.40
 * [new tag]         1.2.41     -> 1.2.41
 * [new tag]         1.2.42     -> 1.2.42
 * [new tag]         1.2.43     -> 1.2.43
 * [new tag]         1.2.44     -> 1.2.44
 * [new tag]         1.2.45     -> 1.2.45
 * [new tag]         1.2.46     -> 1.2.46
 * [new tag]         1.2.47     -> 1.2.47

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (1.1.44)
$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Fast-forwarded 1.1.44 to upstream/master.

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (1.1.44)
$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to upstream/master.

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git fetch upstream

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$ git push origin master
Fatal: AggregateException encountered.
Username for 'https://github.com': canglang1973
Counting objects: 3375, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1681/1681), done.
Writing objects: 100% (3375/3375), 440.81 KiB | 0 bytes/s, done.
Total 3375 (delta 1606), reused 3126 (delta 1378)
remote: Resolving deltas: 100% (1606/1606), completed with 139 local objects.
To https://github.com/canglang1973/fastjson.git
   0818ecf..c18836b  master -> master

leitao@PC-201806121810 MINGW64 /f/WorkSpace/fastjson (master)
$

第二个简单粗暴的方法,使用IDEA的同学可直接点击"Rebase my GitHub fork",如图:

此处可能需要登录Github ,登录之后再点一次就万事大吉了,你fork的代码已与开源项目的源代码一致了.

第三个方法:此方法与第一个类似,此处使用git merge 而不是 git rebase,具体操作命令步骤如下

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git remote
origin

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git remote -v
origin  https://github.com/canglang1973/arthas.git (fetch)
origin  https://github.com/canglang1973/arthas.git (push)

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git remote add upstream https://github.com/alibaba/arthas.git

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git remote -v
origin  https://github.com/canglang1973/arthas.git (fetch)
origin  https://github.com/canglang1973/arthas.git (push)
upstream        https://github.com/alibaba/arthas.git (fetch)
upstream        https://github.com/alibaba/arthas.git (push)

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git fetch upstream
remote: Enumerating objects: 216, done.
remote: Counting objects: 100% (216/216), done.
remote: Total 561 (delta 215), reused 215 (deltaRece i215), pack-reused 345
Receiving objects: 100% (561/561), 239.95 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (306/306), completed with 122 local objects.
From https://github.com/alibaba/arthas
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      master     -> upstream/master

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git merge upstream/master
Updating 7218eb6..5641900
Fast-forward
 Dockerfile                                         |  22 ++++
 Dockerfile-No-Jdk                                  |  15 +++
 README.md                                          |  22 ++++
 README_CN.md                                       |  25 ++++-
 bin/as.sh                                          |  33 +++---
 .../java/com/taobao/arthas/boot/Bootstrap.java     | 115 ++++++++++++---------
 .../java/com/taobao/arthas/boot/ProcessUtils.java  | 115 ++++++++++++++++++---
 .../main/java/com/taobao/arthas/client/IOUtil.java |   8 +-
 .../java/com/taobao/arthas/common/IOUtils.java     |   2 -
 .../com/taobao/arthas/common/JavaVersionUtils.java |  22 ++--
 .../main/java/com/taobao/arthas/core/Arthas.java   |   5 +-
 .../arthas/core/command/BuiltinCommandPack.java    |   1 -
 .../command/monitor200/MonitorAdviceListener.java  |   1 -
 .../command/monitor200/StackAdviceListener.java    |   3 -
 .../core/command/monitor200/TraceEntity.java       |   3 -
 .../core/shell/handlers/shell/SuspendHandler.java  |   4 -
 .../taobao/arthas/core/shell/impl/ShellImpl.java   |   5 -
 .../com/taobao/arthas/core/shell/system/Job.java   |   2 -
 .../taobao/arthas/core/shell/system/Process.java   |   1 -
 .../com/taobao/arthas/core/util/ThreadUtil.java    |   1 -
 .../arthas/core/util/metrics/SumRateCounter.java   |   3 -
 .../core/util/usage/StyledUsageFormatter.java      |   1 -
 site/src/site/sphinx/advanced-use.md               |   2 +-
 site/src/site/sphinx/docker.md                     |  64 ++++++++++++
 site/src/site/sphinx/en/advanced-use.md            |   2 +-
 site/src/site/sphinx/en/async.md                   |   2 +-
 site/src/site/sphinx/en/docker.md                  |  64 ++++++++++++
 site/src/site/sphinx/en/index.md                   |   6 +-
 site/src/site/sphinx/en/install-detail.md          |  17 +--
 site/src/site/sphinx/en/manual-install.md          |   2 +-
 site/src/site/sphinx/en/quick-start.md             |   8 +-
 site/src/site/sphinx/en/redefine.md                |  33 +++++-
 site/src/site/sphinx/en/sc.md                      |   2 +-
 site/src/site/sphinx/en/tt.md                      |   2 +-
 site/src/site/sphinx/index.md                      |   2 +
 site/src/site/sphinx/install-detail.md             |  34 ++++--
 site/src/site/sphinx/quick-start.md                |  10 +-
 site/src/site/sphinx/redefine.md                   |  33 +++++-
 static/acmedcare.png                               | Bin 0 -> 1680 bytes
 static/alibaba.png                                 | Bin 0 -> 2637 bytes
 static/alipay.png                                  | Bin 0 -> 1264 bytes
 static/aliyun.png                                  | Bin 0 -> 1018 bytes
 static/homeking365_log.png                         | Bin 0 -> 1624 bytes
 static/hulijingfu.png                              | Bin 0 -> 2240 bytes
 static/icbc.png                                    | Bin 0 -> 3845 bytes
 static/laidian.png                                 | Bin 0 -> 1743 bytes
 static/luying.png                                  | Bin 0 -> 1220 bytes
 static/santiyun.png                                | Bin 0 -> 786 bytes
 static/sigehulian.png                              | Bin 0 -> 1721 bytes
 static/taobao.png                                  | Bin 0 -> 2644 bytes
 static/tmall.png                                   | Bin 0 -> 1984 bytes
 static/weiyi.png                                   | Bin 0 -> 3084 bytes
 static/zhengdawenhua.png                           | Bin 0 -> 1316 bytes
 static/zhuoyuejiaoyu.png                           | Bin 0 -> 1561 bytes
 .../src/main/java/com/alibaba/arthas/Test.java     |   2 +-
 55 files changed, 542 insertions(+), 152 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 Dockerfile-No-Jdk
 create mode 100644 site/src/site/sphinx/docker.md
 create mode 100644 site/src/site/sphinx/en/docker.md
 create mode 100644 static/acmedcare.png
 create mode 100644 static/alibaba.png
 create mode 100644 static/alipay.png
 create mode 100644 static/aliyun.png
 create mode 100644 static/homeking365_log.png
 create mode 100644 static/hulijingfu.png
 create mode 100644 static/icbc.png
 create mode 100644 static/laidian.png
 create mode 100644 static/luying.png
 create mode 100644 static/santiyun.png
 create mode 100644 static/sigehulian.png
 create mode 100644 static/taobao.png
 create mode 100644 static/tmall.png
 create mode 100644 static/weiyi.png
 create mode 100644 static/zhengdawenhua.png
 create mode 100644 static/zhuoyuejiaoyu.png

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 51 commits.
  (use "git push" to publish your local commits)
nothing to commit, working directory clean

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git push
Fatal: HttpRequestException encountered.
Counting objects: 413, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (136/136), done.
Writing objects: 100% (413/413), 83.13 KiB | 0 bytes/s, done.
Total 413 (delta 179), reused 394 (delta 161)
remote: Resolving deltas: 100% (179/179), completed with 45 local objects.
To https://github.com/canglang1973/arthas.git
   7218eb6..5641900  master -> master

leitao@PC-201806121810 MINGW64 /f/GitHubWorkSpace/arthas (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

解析:

背景:在很久以前就将此开源项目fork到自己的GitHub仓库中,自己fork的分支已落后源分支,将自己仓库的分支clone到本地.

git bash操作

1.git remote  :查看远程仓库

2. git remote -v  :查看远程仓库地址

3.git remote add upstream https://github.com/alibaba/arthas.git  添加远程仓库地址

4.git remote -v 此处可以再次查看远程仓库地址,看3是否执行成功

5.git fetch upstream 将原仓库最新的代码拉取到本地

6.git merge upstream/master 将upstream的master分支合并到本地master分支

7.git status 查看当前分支origin/master的状态,此处显示本地比orgin/master有51次提前提交

插图

此时查看我的GitHub发现确实有51次落后提交

8.git push 将本地变动推送到自己的远程仓库

9.git status 此时再查看本地状态就已经干净了

查看我的GitHub提交记录也与原分支一样了

此处就完美同步了!

 

参考:

https://blog.csdn.net/vim_wj/article/details/78300239

https://www.yiibai.com/git/git_remote.html

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值