9

流程总结
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 流程图

734.png

7341583-9a3e2d043e00d83a.png

A克隆项目,增加代码

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

公司的项目: Qingtong/pinghu_project
微信截图_20200209133033.png

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

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

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

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

1、创建自己的分支

为什么我们要创建分支?

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

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

git branch 查看现有分支,我们看到会有一个master分支
微信截图_20200209144105.png

git checkout -b dev 或者 git switch -c dev 创建并切换到分支dev,我们再次查看分支,看到已经切换到dev分支
微信截图_20200209144415.png

2、修改代码并提交

我们添加一个文件 git.txt
微信截图_20200209142929.png

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

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

git push origin dev 将修改推送到仓库项目(marh/pinghu_project)中
微信截图_20200209144910.png

可以看到我们的仓库项目中已经有了刚才提交的分支
微信截图_20200209145010.png

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

微信截图_20200209145400.png

微信截图_20200209150706.png

微信截图_20200209151745.png

合并请求提交完成

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

微信截图_20200209152321.png

微信截图_20200209181053.png

合并成功后我们就可以看到分支中出现了我们提交的文件
微信截图_20200209181310.png

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
微信截图_20200209183329.png

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

git pull upstream master

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

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


铁头马
108 声望3 粉丝

如果你认为教育的成本太高,试试看无知的代价。