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. iOS第三方开源库的吐槽和备忘

    转自:http://blog.ibireme.com/2013/09/23/ios-third-party-libs/#more-41361 由 ibireme 发表于 2013/09/23 做iOS ...

  2. CControlLayer

    #ifndef __CONTROLLAYER_H__ #define __CONTROLLAYER_H__ #include "XWidget.h" class CMapDialo ...

  3. Linux之目录的操作(创建、移动、改名、删除、复制)

    .创建 mkdir [dirname] //创建单个目录 mkdir -p newdir1/newdir2/newdir3 //递归创建多级目录 mkdir dir1/dir2/newdir3 //在 ...

  4. MapReduce编程实例5

    前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...

  5. (转)maven3.3.9编译oozie4.3.0

    1.Java版本1.8 [root@sht-sgmhadoopdn-04 app]# java -versionjava version "1.8.0_66"Java(TM) SE ...

  6. node.js在2018年能继续火起来吗?我们来看看node.js的待遇情况

    你知道node.js是怎么火起来的吗?你知道node.js现在的平均工资是多少吗?你知道node.js在2018年还能继续火吗?都不知道?那就来看文章吧,多学点node.js,说不定以后的你工资就会高 ...

  7. 同过增强Connection类[重写了close的方法]实现的从连接池取出连接并放回连接的简单的实现流程

    package tk.dong.connection.util; import java.io.IOException;import java.io.InputStream;import java.i ...

  8. 扫描线 - UVALive - 6864 Strange Antennas

    Strange Antennas Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=87213 M ...

  9. java为安全起见对Applet有所限制

    Applet消亡的原因: ①java为安全起见对Applet有所限制:Applet不允许访问本地文件信息.敏感信息,不能执行本地指令(比如FORMAT),不能访问初原服务器之外的其他服务器. ① IE ...

  10. Try中如果发现错误,即跳出try去匹配catch,那么try后面的语句就不会被执行

    例:public void print() throws Exception. 对于方法a,如果它定义了throws Exception.那么当它调用的方法b返回异常对象时,方法a并不处理,而将这个异 ...