Git学习第四天

Git学习第四天

git远程操作、远程协作模型、git远程分支的最佳实践

git远程操作的基本命令

1.将本地仓库推送到远程

git remote add origin http://github.com/aaa/bbb.git

git push -u origin master
#将本地master分支与远程做关联,下次直接git push就能推送了

2.查看所有远程仓库的别名

git remote show

3.查看某个远程仓库的详细信息

git remote show origin

4.设置推送远程的默认行为为simple

git config --global push.default simple

#git2.0版本后可以用,有兴趣可以查阅下simple和matching的区别

5.查看所有的分支(包括本地分支和远程分支)

git branch -a
#远程分支会用红色字体显示

git branch -av
#-v 输出最后一次提交的信息,包括本地与远程的提前或者落后信息

#若确定远程有新分支,本地需要先pull一下,把远程的新分支映射到本地。因为我们当前用git branch -av看到的远程分支只是真实远程分支的一个映射,如origin/master,它只是存储在本地的一个映射。想要更新这个映射,就需要使用git pull这样拉取的命令。
git pull
git branch -av

6.克隆远程仓库到本地

git clone http://github.com/aaa/bbb.git

#clone会把远程所有的分支全部拉下来,可以用git branch -av命令看所有远程分支,以及当前正使用的远程分支

需要注意:git push的完整写法:

git push origin src本地分支:dest远程分支

远程协作模型

1、开发者A与开发者B协同开发某个项目

开发者A:

#创建好本地仓库,将本地仓库推送到远程
git remote add origin http://github.com/ab/aabb.git
git push -u origin master

开发者B:

#将远程仓库clone到本地
git clone http://github.com/ab/aabb.git

#开始编程功能B,完成后提交代码到本地
git commit -am 'function B'

#将本地仓库推送到远程
git push

开发者A:

#查看远程仓库的状态,目前本地相对于远程肯定是过时的(local out of date)
git remote show origin

#拉取最新的远程代码,git pull相当于git fetch + git merge
git pull

#编写功能A1,完成后提交代码到本地
git commit -am 'function A1'

#将本地仓库推送到远程
git push

开发者B:

#编写功能A2,完成后提交代码到本地。 A1和A2功能在同一块代码里
git commit -am 'function A2'

#将本地仓库推送到远程。此时A1和A2必然冲突,推送失败。
git push

#拉取最新的远程代码到本地。此时A1和A2自动合并冲突,需要手动merge
git pull

#假设文件为FuntionA.java,手动merge结束后,提交
git add FuntionA.java
git commit -m 'merge finish'

#将本地仓库推送到远程(其实推送的是两个提交,原理如下图)
git push

在这里插入图片描述

为什么origin/master会指向commit1呢?

因为origin/master是远程映射到本地的一个分支,在本地存储,原本就指向commit1。当本地pull操作失败后,并没有与同步远程,即:没有修改为commit2。当用户合并冲突后,产生commit4,相对于commit1而言,提前了两次提交。

本地pull操作,其实质分为两步:
1.远程master分支fetch到本地origin/master分支
2.本地origin/master分支再自动merge到本地master分支
而pull操作失败,其实是第2步自动merge的时候失败了。

git远程分支使用的几种最佳实践

1、Gitflow

2、基于Git远程分支的开发模型:

开发分支:develop分支(频繁变化的一个分支)

测试分支:test分支(供测试与产品等人员使用的分支,变化不是特别频繁)

生产发布分支:master分支(变化非常不频繁的一个分支)

BUG修复分支:bugfix(hotfix)分支(生产系统中出现了紧急Bug,用于紧急修复的分支)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值