Git学习笔记-从远端克隆&分支管理

一、从远端克隆

创建SSH Key

查看有没有.ssh文件,如果有再次查看该文件下有没有id.rsa和id.rsa.pub两个文件。

其中id.rsa是私钥,id.rsa.pub是公钥

从远程库克隆

git clone

支持两种格式:

ssh://git@git.sankuai.com/...

http://cuihongzhen@git.sankuai.com/...

二、分支管理

1、创建与合并分支

创建一个分支Dev,Git会创建一个指针dev,指向的是master相同的提价,再把HEAD指向dev,就表示当前分支在dev了。

现在对dev分支做了修改和提交,提交后dev指针向前前进一步,而master不动。

dev开发完成,需要将dev分支的代码和内容合并到master上,然后将master指向dev当前的提交。就完成合并。

总之:git的合并就是改改指针,工作区内容不变。

创建和合并分支指令:

git checkout -b dev #创建Dev分支并切换到Dev分支

git checkout -b表示创建和合并,相当于两条操作

git branch dev
git checkout dev  #切换分支
git merge dev 用于合并指定分支到当前分支

删除多余的分支

git branch -d dev

2、解决冲突

两个同级别的分支修改相同的内容,提交后会出现冲突。原理示意图:

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,根据修改的文件内容进行手动修改。

需要手动解决冲突,然后重新提价。

提交后可以用git log查看提交的结构图

git log --graph

3、分支管理策略

(1)git的合并有两种方式,一个是默认的git merge操作,其中参数为Fast-forward,另一个是添加一个--no-ff参数。

主要区别:

1)默认合并方式

git merge

参考二(1)中的合并图

2)普通模式的合并

带参数的合并(本质:创建一个分支,自动提交(commit)一下,然后再合并)

git merge --no-ff -m"带参数的合并" dev

指针HEAD一致在master上。

(2)一般情况下master版本比较稳定,只是用来合并代码,而开发只能在Dev上。

image.png

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

4、bug分支

4.1)在修复bug时,工作区修改的内容还不想提交,此时,需要将工作区的内容进行临时保存。

git stash可以把当前的工作现场给“存储”起来,

$ git stash
Saved working directory and index state WIP on dev: f52c633 add merge

此时工作区就非常干净了,然后再用git status查看。

4.2)查看存储的“工作现场”

$ git stash list
stash@{0}: WIP on dev: f52c633 add merge

4.3)恢复工作现场

两种方式:

1)git stash apply 恢复

恢复后但不删除stash存储的内容,需要使用指令git stash drop 进行删除。

git stash apply

2)git stash pop 恢复

恢复后,同时删除stash存储的内容

5、分支强行删除

git branch -D <name>

6、多人协作

git push origin dev  #推送自己的分支
git pull #如果提交一次,需要将远端的分支拉取到本地(远端的分支信息比较自己的新)

如果使用git pull提示no tracing information 说明本地和远端没有建立连接,使用下面指令建立连接:

git branch --set-upstream-to dev origin/dev

附:查看远端的分支信息

git branch -v

7、Rebase

“曲线救国”

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值