【github教程】多人协作开源项目fork

一、使用背景

1.分布式

git和svn一样都是管理代码版本的工具,但是git更轻量级一些。首先git是分布式的,大家一定听过区块链,对就是那种分布式,没有中心代码管理的机器,大家都一样。去中心化后,更加安全,流程。

2.管理改变

然后git每个commit节点是相对上一个的commit的改变,对!git监控的代码的改变,而不是复制每个代码副本。所以!git切换分支的时候,也是相当的流程。

二、不同仓库的操作 fork

站在高空看git:一般有人在github上开源了一个项目,然后你想去参与这个项目

  1. fork它;

相当于把别人的项目新开了一个remote,这两个remote可以通过pull request 把自己的代码更新到别人的项目

如果想同步别人的代码到本地,就为本地的分支设置一个上游,需要设置那个remote,remote的那个分支,意思是最后落脚是分支;

  1. 你自己的github的repository就会有这个项目了;
  2. 然后你就可以愉快的搬砖了
  3. 然后你搬完了,你可以把你的任何分支,提一个pull request给你fork的 remote的任何分支,其实你可以给任何remote提pull request,这要这个remote也是fork的同一个项目;
  4. 他们就可以合并你的代码拉
  5. 你还可以给你的某个分支设置上游,来pull,更新代码,push推送代码(这里我感觉不科学,直接给别人的项目推代码,不要经过同意?还是pull request优雅一点吧);


image

1.先检出 QC_L/cn到本地;

2.上游设为webpack-china/cn;

3.然后push;

通过这三个个操作,就将 QC_L/cn同步到为webpack-china/cn啦

1.意思就是本地仓库可以设置多个remote仓库;然后设置某个分支的上游分支后,通过push和pull实现同步;

2.设置上游是分支与分支之间的一个管理,是分支之间的操作,默认本地的QC_L/cn是的上游是 origin/QC_L/cn ,我们可以把它的上游设置成任何remote上面的分支,然后通过push和pull就可以实现同步更新!

在多人协作的情况下的项目,很实用。

一个分支上面的操作

  1. rebase 合并多个节点;

两个分支上面的操作

  1. git merge b合并b分支;
  2. cherry-pick ,选择commit;

版本回退

  1. revert 添加新的commit
  2. reset 移动指针