需求
在开发项目中,需要在基础框架代码上进行开发,但又想能及时更新基础框架代码的新功能,所以就有fork 项目, update 远程仓库代码的操作需求。
操作过程
fork项目
在操作项目时,先fork一个基础项目,在以inmansoft-backend项目为例
更新源项目代码
当源项目代码有更新时,我们可以通过remote的方式去获取更新
更新步骤
主要的操作命令:
- 查看目前仓库可以远程更新的信息
git remote -v - 配置一个远程更新链接,要拥有git仓库访问权限的
git remote add upstream git@github.com:xxx/xxx.git - 拉取远程仓库的代码
git fetch upstream - 合并远程仓库的代码
git merge upstream/master - 把远程仓库的代码作为新源提交到自己的服务器仓库中
git push
操作实例
- 查看目前仓库可以远程更新的信息
$ git remote -v
origin http://username:password@htwy:8088/jenkins/inmansoft-backend.git (fetch)
origin http://username:password@htwy:8088/jenkins/inmansoft-backend.git (push)
- 配置一个远程更新链接,要拥有git仓库访问权限的
$ git remote add fetch-stream http://username:password@htyw:8088/backend/inmansoft-backend.git
$ git remote -v
fetch-stream http://username:password@htyw:8088/backend/inmansoft-backend.git (fetch)
fetch-stream http://username:password@htyw:8088/backend/inmansoft-backend.git (push)
origin http://username:password@htwy:8088/jenkins/inmansoft-backend.git (fetch)
origin http://username:password@htwy:8088/jenkins/inmansoft-backend.git (push)
- 拉取远程仓库的代码
$ git fetch fetch-stream
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 12 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (12/12), done.
From http://htwy:8088/backend/inmansoft-backend
* [new branch] master -> fetch-stream/master
- 合并远程仓库的代码
$ git merge fetch-stream/master
Updating 0386ba6..7778790
Fast-forward
src/main/resources/application.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
- 把远程仓库的代码作为新源提交到自己的服务器仓库中
$ git push
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.09 KiB | 223.00 KiB/s, done.
Total 12 (delta 6), reused 0 (delta 0)
To http://htwy:8088/jenkins/inmansoft-backend.git
0386ba6..7778790 master -> master
图例
fork项目
原始项目 backend/inmansoft-backend
fork出来项目 jenkins/inmansoft-backend