步骤(此处用的是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