简介:
公司开发都是基于 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
网友评论