美文网首页
git 从 fork 的远程仓库更新

git 从 fork 的远程仓库更新

作者: 心情后花园 | 来源:发表于2021-04-20 15:10 被阅读0次

简介:

公司开发都是基于 repo 进行 fork,然后再从 fork 的资源里面提交,开发完毕后再提合并请求(pull request)。

这个过程中,会出现两个问题,一是从主仓库中更新代码,而是同步主仓库中的分支。下面是基于这两个问题,找到的解决方案。

【PS】请先自己弄测试库进行尝试。

1. 从主仓库中更新代码

1. 添加远程仓库链接,名字叫 mainRepo,可以自行修改
> git remote add mainRepo [mainRepo_link];
2. 更新 mainRepo 中的数据
> git fetch mainRepo
3. 切换到你想要更新的分支
> git checkout [your_branch]
4. 更新代码
> git rebase/merge mainRepo/[your_branch]

rebase 会有之前的提交记录,当你合并到主仓库时,记录会跟着一起提交。
merge 

自己写的一个简易的脚本文件

#!/bin/bash
branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
git fetch main && git stash && git merge main/$branch && git stash pop && git pull && git push

2. 从主仓库中拉取新分支

1. 先拉取主仓库中的信息到本地
> git fetch mainRepo
2. 基于主仓库的分支,常见新分支
> git checkout -b [newBranch] mainRepo/[newBranch];
3. 提交仓库到你 fork 的仓库
> git push origin head:[newBranch];
4. 切换到新分支,需要删除本地的这个 newBranch 分支
> git checkout master && git branch -d [newBranch];
5. 切换到新提交到远程的分支
> git fetch && git checkout [newBranch];

自己写的一个简易的脚本文件


#!/bin/bash
# fileName newBranch.sh
newBranch=$1

git stash && git fetch main && git checkout -b main/$newBranch && git push origin head:$newBranch && git checkout master && git branch -d $newBranch && git checkout $newBranch && git stash pop

相关文章

网友评论

      本文标题:git 从 fork 的远程仓库更新

      本文链接:https://www.haomeiwen.com/subject/tyjnlltx.html