Git fork 指南:fork别人的仓库并作为贡献者提交代码

流程总结A 克隆项目,增加代码

  1. 在 Github 上 fork 想要参与的项目仓库 Qingtong/pinghu_project, fork后会生成自己的项目 marh/pinghu_project
  2. git clone 自己的项目
  3. git add XXgit commit -m "" 进行更新,提交
  4. git push origin master 推送到自己的远程仓库 marh/pinghu_project
  5. 在 github 上新建 Pull Request 请求
  6. 项目管理员会审核你提交的代码,如果合适就会同意合并,这样你的代码就会出现在源项目中。
当我们睡了一觉起来,Qingtong/pinghu_project 仓库可能已经更新,我们要同步最新代码

B 获取最新代码

  1. 给远程的上游仓库Qingtong/pinghu_project配置一个 remote 。

    • git remote -v 查看远程状态
    • git remote add upstream 远程仓库qingtong/pinghu链接

      • 例如:git remote add upstream https://xxx.com/Qingtong/pinghu.git
  2. git fetch upstream 将远程所有的分支fetch下来
  3. git merge upstream/master 合并非master分支的代码
  4. git pull upstream master 可以代替流程B的步骤 2+3。 git pull = fetch + merge

此时自己本地的代码就是最新的了,修改完代码后,重复A流程中的步骤 3-5

fork 流程图

A克隆项目,增加代码

一、找到自己喜欢的项目并fork

公司的项目: Qingtong/pinghu_project

我的项目:marh/pinghu_project
fork后我们的仓库中会多出一个一毛一样的项目,但是所属人不同。

二、克隆自己的代码到本地

切换到目录,克隆自己的项目(marh/pinghu_project): git clone https://XXX.com/marh/pinghu_project.git
可以看到我们的桌面多了一个项目文件夹

三、接下来我们就可以在项目中增加自己的代码了

1、创建自己的分支

为什么我们要创建分支?

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作。而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

git branch 查看现有分支,我们看到会有一个master分支

git checkout -b dev 或者 git switch -c dev 创建并切换到分支dev,我们再次查看分支,看到已经切换到dev分支

2、修改代码并提交

我们添加一个文件 git.txt

git add . 把工作时的所有变化提交到暂存区git commit -m "add git.txt" 将暂存区里的改动给提交到本地的版本库

四、推送到我们的远程仓库

git push origin dev 将修改推送到仓库项目(marh/pinghu_project)中

可以看到我们的仓库项目中已经有了刚才提交的分支

五、发送合并请求 (Pull Request)

合并请求提交完成

六、管理员视角:同意/拒绝合并其他开发人员提交分支(一般开发人员没有权限)

合并成功后我们就可以看到分支中出现了我们提交的文件

B 获取源仓库(Qingtong/pinghu_project)的最新代码

七、与fork的项目保持同步

当我们睡了一觉起来,Qingtong/pinghu_project 源仓库可能已经更新了代码,我们要保证本地的代码也是最新的然后再开发 

1. 给远程的上游仓库Qingtong/pinghu_project配置一个 remote 。

git remote -v 查看远程状态git remote add upstream 远程源仓库qingtong/pinghu链接
例如:git remote add upstream https://xxx.com/Qingtong/pinghu.git

2. 拉去远程原仓库的代码

git pull upstream master

我们也可以:git fetch upstream 将远程所有的分支fetch下来git merge upstream/master 合并非master分支的代码git pull = fetch + merge

此时自己本地的代码就是最新的了,修改完代码后,重复A流程中的步骤 3-5

作者:铁头马

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值