一、使用背景
1.分布式
git和svn一样都是管理代码版本的工具,但是git更轻量级一些。首先git是分布式的,大家一定听过区块链,对就是那种分布式,没有中心代码管理的机器,大家都一样。去中心化后,更加安全,流程。
2.管理改变
然后git每个commit节点是相对上一个的commit的改变,对!git监控的代码的改变,而不是复制每个代码副本。所以!git切换分支的时候,也是相当的流程。
二、不同仓库的操作 fork
站在高空看git:一般有人在github上开源了一个项目,然后你想去参与这个项目
- fork它;
相当于把别人的项目新开了一个remote,这两个remote可以通过pull request 把自己的代码更新到别人的项目
如果想同步别人的代码到本地,就为本地的分支设置一个上游,需要设置那个remote,remote的那个分支,意思是最后落脚是分支;
- 你自己的github的repository就会有这个项目了;
- 然后你就可以愉快的搬砖了
- 然后你搬完了,你可以把你的任何分支,提一个pull request给你fork的 remote的任何分支,其实你可以给任何remote提pull request,这要这个remote也是fork的同一个项目;
- 他们就可以合并你的代码拉
- 你还可以给你的某个分支设置上游,来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就可以实现同步更新!
在多人协作的情况下的项目,很实用。
一个分支上面的操作
-
rebase
合并多个节点;
两个分支上面的操作
-
git merge b
合并b分支; -
cherry-pick
,选择commit;
版本回退
-
revert
添加新的commit -
reset
移动指针
网友评论