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. InnoDB存储引擎表的逻辑存储结构

    1.索引组织表:     在InnoDB存储引擎中,表都是依照主键顺序组织存放的.这样的存储方式的表称为索引组织表,在innodb存储引擎表中,每张表都有主键.假设创建的时候没有显式定义主键,则Inn ...

  2. cocos2d-x与ISO内存管理(转)

    一,IOS与图片内存 在IOS上,图片会被自动缩放到2的N次方大小.比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的.图片占用内存大小的计算的公式是:长*宽*4.这样 ...

  3. 基于jQuery的图片异步加载和预加载实例

    如今的网页中有很多图片,比如相册列表,那么如果一次性读取图片将会瞬间加重服务器的负担,所以我们用jQuery来实现图片的异步加载和预加载功能,这样在页面的可视范围内才会加载图片,当拖动页面至可视界面时 ...

  4. Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

    本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifier,@Pos ...

  5. lockf函数的使用

    #include<stdio.h> #include<unistd.h> void main() {int p1,p2,i; while((p1=fork())==-1);// ...

  6. Android——Android studio项目中如何查看R.java文件(转)

    Android Studio 是Google推出的一个Android开发环境,它集成了Android 开发工具用于开发和调试,类似 Eclipse ADT.Google公司停止对eclipse的后续支 ...

  7. KMP算法完整教程 (下)

    下面我们用数学归纳法来解决这个填值的问题. 这里我们借鉴数学归纳法的三个步骤(或者说是动态规划?): 1.初始状态 2.假设第j位以及第j位之前的我们都填完了 3.推论第j+1位该怎么填 初始状态我们 ...

  8. 【MySql】脚本备份数据库

    #!/bin/bash #this is a script of mysql backup #Mysql="mysql" #MysqlDump="mysqldump&qu ...

  9. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...

  10. 【BZOJ】1024: [SCOI2009]生日快乐(dfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1024 果然现在弱到连搜索都不会了么..... 一直想二分...但是无论如何也推不出怎么划分... Q ...