Git的进一步学习小结
Git进一步学习的小结
最近Git的学习有点滞后,在这里对最近的学习做个小回顾吧。
Git的远程仓库
- 添加远程库的问题
首先本地得有个git仓库,要不然在关联github仓库时会出现fatal: not a git repository (or any of the parent directories): .git。
1
2
3$ git remote add origin git@github.com:Wyman-Yan/learninggit.git
(origin是远程库的名字,Wyman-Yan是本人github账户名,learninggit.git是本地仓库名)
推送master分支
1
2
3
4
5 第一次:
$git push -u origin master
(加上-u参数,会把本地master分支与远程master分支关联起来,方便以后推送或拉去的简化命令)
之后每一次:
$git push origin master
第一次用clone和push,会有以下警告,敲了yes后无视即可(是有关信任列表的)
1
2
3
4
5
6
7 The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
yes
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
从远程库克隆
远程库克隆利于多人协作。克隆实际上最近刚好用过,就是之前换主题时,就是从别人的github远程库中克隆到本地,命令如下:
1
$ git clone git@github.com:Wyman-Yan/flexy.git
Git支持多种协议
Git支持的两种协议有http和ssh,但是前者速度慢且每次推送要输入命令,而通过ssh支持的原生Git协议速度最快。
Git的分支管理
在Git中分支可以看成是一条线把各个时间点串联起来
master分支就是其中的主分支,Git中master指向最新提交,HEAD再指向master。详情如图:
1
2
3HEAD——>master
|
O——>O——>Odev指针的出现
创建dev指针后,dev指向最新修改,HEAD指向dev。再进行修改时,master不动,dev动。!注意创建dev分之后要提交(add和commit)。详情如图:
1
2
3
4
5
6
7
8
9
10
11
12
13master ==》 master
| ==》 |
O——>O——>O ==》 O——>O——>O——>O
| ==》 |
dev<——HEAD ==》 dev<——HEAD
-------------
代码如下:
$git checkout -b dev (-b参数表示创建并切换)
(等价于) == $git branch dev
$git checkout dev
在右图情况下再切换回原来的分支,修改不见了:
$git checkout master
-------------
然后就可以合并master和dev。详情如图:
1
2
3
4
5
6
7
8
9
10
11 master ==》 HEAD——>master
| ==》 |
O——>O——>O——>O ==》 O——>O——>O——>O
| ==》
dev<——HEAD ==》
-------------
代码如下:
$git merge dev (合并分支)
$git branch -d dev (删除分支)
$git branch (查看分支)
-------------
总的来说Git的分支管理是很有用的,在团队开发中,每个人在修改时都是平行空间的,各自的工作效率得到了很大程度的提高。