git学习(4)远程库和分支管理

1.1建立本地git库和远程库联系

我使用的是GitHub上的库,首先在GitHub上新建一个库,在建立与远程库的联系之前需要建立ssh key。建立ssh key可以参考廖老师的博客

$ git remote add origin git@github.com:keithmorning/studygit.git

上面的格式是$ git remote add 远程库名称 git地址:gitHub账户名/远程git名称

下一步将本地库推送到远程库

$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (19/19), 1.47 KiB | 0 bytes/s, done.
Total 19 (delta 4), reused 0 (delta 0)
To git@github.com:keithmorning/gitstudy.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

由于远程库是空的,我们第一次推送的时候,添加-u参数,可以吧本地的master和远程的master分支关联起来

以后再提交的时候使用

$ git push origin master就可以了

1.2从远程库克隆

先在gitHub上建立一个studygit的库,在初始化的时候选择initial with a readme.md,用来克隆的时候查看,命令git clone 地址

$ git clone git@github.com:keithmorning/studygit.git
Cloning into 'studygit'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
Checking connectivity... done.
fengxideMac:documents fengxi$ cd studygit
fengxideMac:studygit fengxi$ ls
README.md
fengxideMac:studygit fengxi$ cat readme.md
# studygit
from remove study git
fengxideMac:studygit fengxi$

1.3总结

git从本地提交到远程版本库的时候,首先使用git remote add 远程库名+地址,然后使用git push+地址命令,如果是第一次提交需要建立本地分支和远程分支的联系git push -u +地址

从远程版本库在本地建立克隆库使用命令git clone +地址

2分支管理

2.1分支的概念

先放上廖老师的经典图片

如果我们只有一个分支,那么这个分支的随着我们的提交是

--->A(master)--->B(master)---->C(master)

HEAD指向C,即当前分支

我们通过git checkout -b newBranch,新建一个分支变成这样的,并让指针指向新分支

--->A(master)--->B(master)---->C(master)

								       ---->D(newBranch)<HEAD>

在新分支中做文件修改后,添加并提交。完成后切换master,然后合并分支,使用命令 merge,指针指向master

--->A(master)--->B(master)---->C(master)----D(newBranch,master<HEAD>)

2.2命令实现

$ git checkout -b newBranch
Switched to a new branch 'newBranch'
$ git add readme.txt
$ git commit -m "new branch"
[newBranch 86c291c] new branch
1 file changed, 1 insertion(+)
$ git checkout master
Switched to branch 'master'
$ git merge newBranch
Updating bb84d1d..86c291c
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)

删除newBransh分支

--->A(master)--->B(master)---->C(master)----D(master<HEAD>)

$git branch -d newBranch
Deleted branch newBranch (was 86c291c).

2.3总结

命令 介绍
git branch 查看分支
git branch <name> 创建分支
git checkout <name> 切换分支
git checkout -b <name> 创建并切换分支
git merge <name> 合并某一分支到当前分支
git branch -d <name> 删除某一分支

git学习(4)远程库和分支管理的更多相关文章

  1. git学习笔记(四)—— 分支管理

    一.创建与合并分支 git branch //查看分支 git branch <name> //创建分支 git checkout <name> //切换分支 git chec ...

  2. Git检出远程库的分支等相关操作

    来到公司,询问同事后发现系统已经上传到Git远程仓库: 我这里先把远程仓库clone下来: $ git clone http://git.eas****tect.git 发现目录下只有一个READY. ...

  3. Git学习笔记(5)——分支管理

    本文主要记录了分支的原理.分支的创建,删除,合并.以及分支的使用策略. 分支在实际中的作用 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不 ...

  4. Git学习笔记(二)分支管理与合并及Bug分支

    一.分支管理 1.什么是分支 分支就相当于我们看科幻片里的平行宇宙,如果两个平行宇宙互不干扰,那铁定是啥事儿没有.不过,在某个时间点,两个平行宇宙合并了呢?假如两个宇宙中都有你的影子, 合并之后相当于 ...

  5. git——学习笔记(三)分支管理

    一.创建.合并分支 每次提交,git都往后走一格,串成一跳时间线,head指向的是分支,分支指向提交.master是主分支,dev是另一条分支,分支就像指针一样,合并.删除分支时,修改的都是指针,工作 ...

  6. Git学习——从远程库克隆

    克隆一个本地库 首先准备好一个远程库.再用命令克隆一个本地库. git clone git@github.com:<github账户>/<远程库名>.git 克隆一个仓库,首先 ...

  7. Git入门——远程仓库及分支管理

    关于本地版本库的操作,请见:Git入门--本地版本库操作 本篇提到的所有命令: 小结 前面提到,Git相对于传统的SVN有着很大的优势,其中之一就在于集中式系统中,版本库只能存在于中央服务器上:而在G ...

  8. 从Git里拉取远程的所有分支

    从Git里拉取远程的所有分支 git branch -r | grep -v '\->' | while read remote; do git branch --track "${r ...

  9. 学习廖雪峰的Git教程3--从远程库克隆以及分支管理

    一.远程库克隆 这个就比较简单了, git clone git@github.com:****/Cyber-security.git 远程库的地址可以在仓库里一个clone or download的绿 ...

随机推荐

  1. 【Android】14.2 外部文件存储和读取

    分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 1.基本概念 内部存储的私有可用存储空间一般都不会很大,对于容量比较大的文件,例如视频等,应该将其存储在外部存储设 ...

  2. 使用digitalocean搭建v·p·s

    这几天digitalocean开始猛卡,一顿操作之后连不上了=_=遂复习了一下怎么搭vps 准备工作 事先准备好Putty,直接百度搜索下载即可(也可直接使用digitalocean的access c ...

  3. mysql root 用户被删

    [root@M ~]# vi /etc/my.cnf [mysqld] skip-grant-tables [root@M ~]# service mysqld restart Shutting do ...

  4. 在无法单步调试的情况下找Bug的技巧

    比如说你有一个大的模块A,其组成部分有B,C,D这3个小的模块,现在A出了一个BUG,因为某种原因的限制你无法单步调试.怎么较快地定位BUG发生的根源? 这里记录一下刚才我在找BUG的时候采用的思路, ...

  5. DIV中display和visibility属性差别

    DIV中display和visibility属性差别 DIV中display和visibility属性差别还是挺大的,虽然Visibility和Display属性都可以达到隐藏页面元素的目的,但它们的 ...

  6. socket相关函数中断后重试

    慢系统调用accept,read,write被信号中断时应该重试.对于accept,如果errno为ECONNABORTED,也应该重试. connect虽然也会阻塞,但被信号中断时不能立即重试,该s ...

  7. 云通讯 为php_sdk 添加关闭子账户扩展

  8. 安卓解析json

    重点是开启网络权限 难点是调用函数 开启网络权限 </application> <uses-permission android:name="android.permiss ...

  9. 关于Unity中的摄像机

    摄像机是挂载Camera组件的能把3D世界物体拍摄成2D画面显示到屏幕上面的节点,角度不一样,位置不一样,拍摄出来的东西就不一样. Clear Flags:没有物体的时候,摄像机拍摄出的屏幕要绘制什么 ...

  10. 关于Cocos2d-x开发一个游戏的过程自述

    我在2016年12月6号完成了我的第一个自己独立完成的游戏,期间遇到各种各样的问题和困难,但是幸运的是问题都一一被解决了,现在我想总结一个整个的制作游戏的过程 使用的环境是VS2013+cocos2d ...