Git继续学习(二)
2017-09-28 13:56
176 查看
之前的仓库操作跟SVN操作没甚区别,现在学习git独特的功能之一,远程仓库,配合GitHub网站托管代码块 主人博客
第1步: 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有
id_rsa 是私钥
id_rsa.pub 是公钥
第2步:
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
ssh Key 目的是让 GitHub 识别推送上来的是自己的内容,并且GitHub支持添加多个Key 也意味着 你可以有若干的电脑往github上提交东西
注意:既然github是公共网站,所以提交上去的代码都是公开的
要想让自己的代码不公开有两种方法
1. 给github缴费使用私有版本库
2. 自己搭建Git服务器
Git与GitHub进行同步
GitHub上创建一个版本库,获取ssh地址,用来对接
添加远程库的名称是origin,这是Git默认的叫法,也可以改成其他的,但是origin这个名字一看就知道是远程库,完成之后,就可以把本地的文件上传到远程库中了。
因为第一次推送到github,所以添加 -u 的参数,因为提交的是本地master分支,远程库是空的,所以会把master分支内容推送的远程库的master分支,还会把本地master与远程库master分支关联起来,在以后的推送或者拉取时就可以简化命令。以后直接使用
克隆远程版本库
git支持多种协议
1. https
2. ssh
其中通过
原网站分支图
总结:
1.
2.
3.
4.
5.
6.
解决冲突
当两个分支进行合并出现冲突的时候,会出现冲突,冲突发生在两个分支在相同的位置上进行了修改,我们需要选在保留的部分删去不要的,处理后在进行提交
如何处理冲突可以查看文章下方
如何处理冲突
分支管理策略
我们在合并分支的时候,一般会进入Fast forward快速合并模式,这个模式有个弊端是,直接删除分支,会丢失分支信息使用
Bug分支
场景:当我们在分支进行开发的时候,发现一个bug,可能通过建立一个修复bug的分支进行修复,但是你的开发分支正在编写,但是并不想提交,因为还为完成工作,但是你又必须现在就修复bug
Git提供了一个
在开发分支下
bug修复后切换到开发分支
恢复工作区
feature分支
场景:当我们有很多想法的时候,添加很多特效,功能的时候,通常创建一个feature分支,进行开发,但是会出现开发完好,突然说不需要添加这个功能了
999a
,在还没有合并提交的情况下删除
如果要丢弃一个没有被合并过的分支,可以通过
推送分支:
总结:
1. 首先
2. 如果推送失败,因为远程分支比你的本地更新,
3. 如果合并冲突,解决冲突,并在本地提交
4. 如果git pull 提示”no tracking information “,说明本地分支,和远程分支的连接关系没有创建,
以上就是多人协作的工作模式
在需要打标签的分支下执行下面的命令
默认标签是打在最新的commit 上的,如果忘记打标签,可以找到需要打标签的commit_ID,然后打上标签
查看所有标签
根据标签的名称查看详细信息
远程仓库
Git仓库与GitHub仓库的SSH加密第1步: 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有
id_rsa这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:和id_rsa.pub
$ ssh-keygen -t rsa -C "youremail@example.com"
id_rsa 是私钥
id_rsa.pub 是公钥
第2步:
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
ssh Key 目的是让 GitHub 识别推送上来的是自己的内容,并且GitHub支持添加多个Key 也意味着 你可以有若干的电脑往github上提交东西
注意:既然github是公共网站,所以提交上去的代码都是公开的
要想让自己的代码不公开有两种方法
1. 给github缴费使用私有版本库
2. 自己搭建Git服务器
Git与GitHub进行同步
GitHub上创建一个版本库,获取ssh地址,用来对接
git remote add origin git@github.com:xxx/仓库名称
添加远程库的名称是origin,这是Git默认的叫法,也可以改成其他的,但是origin这个名字一看就知道是远程库,完成之后,就可以把本地的文件上传到远程库中了。
git push -u origin master
因为第一次推送到github,所以添加 -u 的参数,因为提交的是本地master分支,远程库是空的,所以会把master分支内容推送的远程库的master分支,还会把本地master与远程库master分支关联起来,在以后的推送或者拉取时就可以简化命令。以后直接使用
git push origin master就可以了。
克隆远程版本库
git clone 版本库地址
git支持多种协议
1. https
2. ssh
其中通过
ssh原生
git协议速度最快
分支管理
创建与合并分支原网站分支图
总结:
1.
git branch查看分支
2.
git branch 'name'创建分支
3.
git checkout 'name'切换分支
4.
git checkout -b 'name'创建并切换分支
5.
git merge 'name'合并分支
6.
git branch -d 'name'删除分支
解决冲突
当两个分支进行合并出现冲突的时候,会出现冲突,冲突发生在两个分支在相同的位置上进行了修改,我们需要选在保留的部分删去不要的,处理后在进行提交
如何处理冲突可以查看文章下方
如何处理冲突
git log --graph查看分支合并图
分支管理策略
我们在合并分支的时候,一般会进入Fast forward快速合并模式,这个模式有个弊端是,直接删除分支,会丢失分支信息使用
--no-ff参数普通合并,保留分支信息记录
Bug分支
场景:当我们在分支进行开发的时候,发现一个bug,可能通过建立一个修复bug的分支进行修复,但是你的开发分支正在编写,但是并不想提交,因为还为完成工作,但是你又必须现在就修复bug
Git提供了一个
stash功能,可以把你的工作展示保存,等使用的时候再恢复,如何使用呢?
在开发分支下
git stash
git status查看工作区是空的
bug修复后切换到开发分支
git stash list查看储存的
恢复工作区
git stash pop删除list列表,并恢复工作区内容
feature分支
场景:当我们有很多想法的时候,添加很多特效,功能的时候,通常创建一个feature分支,进行开发,但是会出现开发完好,突然说不需要添加这个功能了
999a
,在还没有合并提交的情况下删除
git branch -d feature会提示错误,未合并
如果要丢弃一个没有被合并过的分支,可以通过
git branch -D ‘name’查看远程库的详细信息强行删除。
多人协助
[code]git remote -v
推送分支:
总结:
1. 首先
git push origin 分支名称将本地推送到远程库中
2. 如果推送失败,因为远程分支比你的本地更新,
git pull 远程库 分支命令获取最近版本,然后视图合并
3. 如果合并冲突,解决冲突,并在本地提交
git push origin 分支名称
4. 如果git pull 提示”no tracking information “,说明本地分支,和远程分支的连接关系没有创建,
git branch --set-upstream 分支名称 origin/分支名称
以上就是多人协作的工作模式
标签管理
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。原链接在需要打标签的分支下执行下面的命令
git tag v1.0
默认标签是打在最新的commit 上的,如果忘记打标签,可以找到需要打标签的commit_ID,然后打上标签
git tag v1.1 commit_ID
查看所有标签
git tag
根据标签的名称查看详细信息
git show 标签名称
相关文章推荐
- 继续学习git之——SourceTree的使用(git视图化使用)
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
- Windows下Git使用初级步骤(为自己写的、继续学习不断更新)
- 继续学习GIT
- Git学习 --> 个人常用命令add,commit以及push
- (ubuntu 16.04) Git 本地仓库简单操作学习 (一)
- 版本控制系统git学习
- Git常用命令学习手册
- GIT学习网站
- salesforce 零基础学习(五十三)多个文件生成一个zip文件(使用git上封装的代码)
- Git学习笔记(10)——搭建Git服务器
- Git学习笔记(四)---工作区与暂存区
- Git学习笔记
- git 命令学习
- git 学习整理
- git学习之一:内部对象工作原理
- git学习
- git学习——初次运行 Git 前的配置
- Git 个人学习笔记及心得