美文网首页Git、SVN实操专题
Fork方式中origin和upstream的区别

Fork方式中origin和upstream的区别

作者: 硅谷干货 | 来源:发表于2021-07-31 15:35 被阅读0次

origin

源仓库,一般为git clone的仓库,如bannidaer/fastjson,克隆后默认提交和拉取的地址

upstream

为上游仓库,一般为origin fork 的仓库,如alibaba/fastjson


出现原因

先对alibaba/fastjson项目fork了,在自己仓库出现bannidaer/fastjson项目或直接添加上游仓库

git remote add upstream git@github.com:alibaba/fastjson.git

在本地克隆项目

git clone git@github.com:bannidaer/fastjson.git

在项目内查看仓库

git remote -v

就会出现:

截图.PNG

操作的时候就要分origin和upstream,默认是origin,需要操作upstream需要添加说明

如:

git pull = git pull origin master是从bannidaer/fastjson的master分支拉代码
git pull upstream master才是从alibaba/fastjson的master分支拉代码

如果直接clone alibaba/fastjson,则只有:

操作为默认origin


解决提交冲突简单几步:

git reset 版本号
git pull
git pull upstream master
git add .
git push origin master
git push origin master -f

这是我常用的几个fork方式git命令,仅供参考,如果您有更方便的方式,私信与我交流!

如果不是通过master呢,而且在拉取分支提交分支上呢,以下我以分支Br_develop_1.11.0.300 为例:

// 检出远程分支
git checkout -b Br_develop_1.11.0.300 upstream/Br_develop_1.11.0.300
// 拉取远程分支
git pull upstream Br_develop_1.11.0.300
// 删除本地分支
git branch Br_develop_1.11.0.300 -D
// 撤销修改
git rebase --abort
// 推送远程分支
git push origin Br_develop_1.11.0.300
// 强制推送远程分支
git push origin Br_develop_1.11.0.300 -f
// 变基
git pull --rebase upstream Br_develop_1.11.0.300
// 撤销已经提交的记录
git reset HEAD^
// 撤销已经push的记录
git reset --soft 版本记录号

撤销重新提交分支如下:

git checkout master
git branch -D Br_release_Beta_415
git remote -v
git fetch upstream 
git pull --rebase upstream Br_release_Beta_415
git rebase --abort
git reset HEAD^
git checkout .
git push origin Br_release_Beta_415 -f

删除本地分支重新提交到分支如下:

git branch -D Br_release_Beta_415
git fetch upstream
git checkout -b Br_release_Beta_415 upstream/Br_release_Beta_415
git push origin Br_release_Beta_415 -f

相关文章

网友评论

    本文标题:Fork方式中origin和upstream的区别

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