git fork使用记录

2019-07-21  本文已影响0人  神棄丶Aria

1、背景

项目leader要求,对原仓库fork,减少主仓库分支的创建与便于管理。
使用平台:gitlab

2、fork仓库与原仓库关联

以下将原仓库称为仓库A,fork仓库称为仓库B。
fork了仓库A得到仓库B后,我们同样希望在B时我们能同步A的代码。这时候只要将A添加为B的上游仓库即可。

 git remote -v
origin  ssh://git@gitlab.fork_repo.domain:10022/**.git (fetch)
origin  ssh://git@gitlab.fork_repo.domain:10022/**.git (push)

 git remote add upstream ssh://git@gitlab.origin_repo.domain:10022/**.git 

 git remote -v
origin  ssh://git@gitlab.fork_repo.domain:10022/**.git (fetch)
origin  ssh://git@gitlab.fork_repo.domain:10022/**.git (push)
upstream        ssh://git@gitlab.origin_repo.domain:10022/**.git (fetch)
upstream        ssh://git@gitlab.origin_repo.domain:10022/**.git (push)

3、更改fork仓库的子模块关联

当我们fork的仓库有子模块时,总想要将子模块也更改为我们fork的子仓库。
(1)找到项目根目录下的.gitmodules文件,打开后每个子模块都会对应各自的仓库url地址,把url改成自己fork的子模块仓库地址即可
(2)更新子模块信息

git submodule sync

git submodule update --init --recursive

这样就将子模块替换为自己fork的仓库。同时为了保持与上游仓库同步,可以将.gitmodules的修改复原。

4、同步fork仓库与原仓库代码

其实和原本拉代码的步骤一样,拉某一分支——fix冲突——合并推上远程仓库

git fetch upstream master
git merge master
git push upstream master
//这里执行了拉下分支——合并——推上仓库的操作

//一般我是
git pull upstream master
git push

5、原仓库有的分支拉到fork仓库

git checkout -b new_branch upstream/new_branch
git push -u origin new_branch
上一篇 下一篇

猜你喜欢

热点阅读