📢📢📢 阿里云双十一,赠送您一张全场8折折扣优惠券

📢📢📢 2核2G3M的服务器,99元一年,新老用户续费同享!!

git中的分支相关 fetch merge 之类的

好久没写了   不知道写什么东西好  就没写了  也太懒了自己

之前git相关的简单的命令 pull push clone add  commit 之类都用的很熟练了  之前合作开发的时候也都是用的同一个远程git地址   但是最近都是用fork的形式来合作开发的  所以 就涉及到多远程源了

一个项目 git@A:a.git 有两个人 A与B 或者更多  a是由A负责管理的  B是参与开发者  是不能直接提交到a的 无论是master还是其他分支  以前我都会是让master给A管理  合并啊 push啊 都是A   然后单独开个其他的分支必然dev给B  B只能在dev上操作    虽然没什么问题  但是不好

现在我们用fork的方法 , 会让B fork一份a到自己的仓库 git@B:b.git   这时候b和a内容是一样的  B吧b clone一份到自己的本地    然后  把a添加到远程仓库  git remote add gita git@A:a.git  然后查看所有分支就可以看到一个叫gita的仓库了git fetch gita master:test  这句的意思是 把gita上面的master fetch到本地的test  这样的话test就能和gita保持一致了 然后再将本地master与test合并  git merge test 可以看到 这些操作里面都没有涉及到分支的切换   就完成了merge    或者直接一步 git pull gita master:master 或者是直接省略 git pull gita master  由此我才明白 pull 和push 完整的参数的列表   原来还有一个参数表示远程地址的啊    merge了后  把master push到b  然后向a发起merge request    A接受就可以了    或者也可以手动合并  把b添加到自己的远程  获取最新数据  然后合并

由上也可以看出来fetch和pull的区别  fetch 只获取数据并建立新分支  然后需要我们手动合并分支    pull获取数据后直接与指定分支合并

关于那个远程仓库的名称   默认的仓库名字叫做origin 可以添加多个仓库  如果有多个仓库  多个分支的话  pull push后面参数就要写明确了   pull 远程仓库名  远程仓库分支:本地分支  还有  push远程仓库名  本地仓库分支:远程分支 如果不写仓库名的话就会默认origin  如果本地分支和远程分支一样名字的话可以只写一个分支名  如果分支名不写的话 默认远程为仓库中名字和当前本地分支一样的那支

不知道好不好有点乱   记录一下