Git版本控制理解(二)

一、Git本地仓库和github上创建的远程库关联
1.创建SSH key.
打开Shell(windows下打开Git Bash),创建SSH key:命令ssh-keygen -t rsa -C “youremail@example.com”;
然后可在用户主目录找到.ssh目录,里面有id_rsa(私钥)和id_rsa.pub(公钥)两个文件。(在本地生成ssh-key,用来验证提交者身份)若早就存在,直接跳过进行下一步。
2.然后在.ssh文件夹下找到id_rsa.pub文件,里面内容复制到github的”setting”下的”SSH and GPG keys”的添加过程的输入框里,用以生成ssh-key。
3..把本地仓库与github上创建的仓库关联,然后把本地仓库的内容推送到github仓库。
git remote add origin git@github.com:emptyOcean/git_test.git
注意:emptyOcean是自己的Github账号名,git_test是github库的名。添加后远程库的名字就是origin(git的默认叫法)。

二、基本命令(推送、克隆)
本地仓库的内容推送到GitHub仓库:git push -u origin master
(把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库时空的,我们第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送和拉取就可以简化命令。)

此后使用 git push origin master 推送最新更改。

从远程库克隆一个本地库:
git clone git@github.com:emptyOcean/gitskills.git

三、分支管理(重要)
1.分支的操作:
在Git里面,每次提交的时间线,叫做主分支,即master分支。HEAD严格来说不是指向提交,而是master,master才是指向提交的。

创建新的分支dev,并将HEAD指向dev,修改工作区内容,提交,dev指针就会往前移动,而master指针不变。

然后进行合并,便只剩下一条master分支了。

创建、合并、删除分支操作如下:

查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d

2.合并冲突:
若分支的提交情况如下:
分支冲突
这种情况下,GIT无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并可能会有冲突。

可在合并后,继续提交来覆盖。

git log –graph:可以看到合并分支图。
合并分支图

3.分支管理策略

合并分支时,若可能,GIT会采用Fast forward模式,但是这种模式下,删除分支后,会丢掉分支信息。

故:如果想强制禁用Fast forward模式,在合并分支命令git merge后加上 –no-ff
(git merge –no-ff -m “” dev)

不使用Fast forward模式,merge后就像这样:
这里写图片描述

实际开发中,基本原则如下:
首先,master分支应该是非常稳定的,仅用来发布新版本,平时不能再上面干活。
干活都在dev分支上,因此,dev分支是不稳定的,然后最后再把dev分支合并到master分支上。
团队合作的分支如下:
!协作分支图](https://img-blog.youkuaiyun.com/20180326154326763?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0VtcHR5T2NlYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

4.Bug分支
git stash:把当前的工作现场“储藏”起来,等以后恢复现场后继续工作。

git stash list:查看存的工作现场。
恢复工作现场:1)git stash apply恢复,恢复后,stash内容并不删除,需要用git stash drop来删除。
2)git stash pop恢复,恢复的同时把stash内容也删除。

5.Feature分支
添加一新功能时,最好新建一个feature分支,在上面开发,完成后,合并,最后删除该分支。

git branch -D :丢弃一个没有合并过的分支。

6.多人协作
git remote:查看远程库的信息。
后面加 -v,显示更详细的信息。

推送分支:命令git push origin master/dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值