一、远程
      Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码。不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库。
     首先需要先在github上面创建仓库。创建步骤百度google都有。
     第一次推送的时候需要本地库关联远程库,使用命令git remote add origin git@server-name:path/repo-name.git
origin后面实际上是远程库的ssh地址。
     关联之后,使用命令git push -u origin master第一次推送master分支的所有内容。第一次的时候需要使用 -u,在此后的每一次推送的时候只需要git push origin master就可以了。
     
     当我们第一次开发项目的时候,我们需要从远程库获取别人的代码,这时候就需要从远程库克隆一个本地库。命令:

$ git clone git@github.com:michaelliao/gitskills.git
     clone后面是git远程库ssh的地址
     除了ssh地址之外,也可以使用https的地址。
 
二、分支管理
     git作为分布式版本控制系统,多线共同开发的优点体现在分支的管理上,所有的分支提交情况git的可视化工具都可以很清晰的看得到。git的分支提交和合并十分的快。关键在于分支的切换和合并。一般在一个团队合作的项目中,会创建一个主分支master,master主分支十分稳定,仅用来发布新版本,然后团队开发都在dev分支上,给每个开发者创建一个分支,各个开发者单独开发,互不影响,开发者时不时就將开发的功能合并到dev中,然后功能点足够发布一个新版本之后再将dev合并到master分支,这样master分支就具备了每个开发者的开发的功能。
  分支管理的流程如下:
     1、合并分支
     比如创建一个叫dev的分支,然后切换到dev分支
          创建分支
$ git branch dev
切换分支git checkout 不使用--的时候是指切换都某分支。
$ git checkout dev
查看所有分支
$ git branch
现在HEAD在dev分支上,然后在dev分支进行提交
$ git add <file>
$ git commit -m "new branch first commit"
这时dev分支的工作结束了,切换回master分支
$ git checkout master
然后这时候需要将dev的内容合并到master分支上
$ git merge dev
这时候就完成了一次分支合并,因为分支的创建和合并都很快,最好的建议是master合并完文件之后建议将其他分支删除掉,但是如果还在继续开发的话则不需要了。
删除分支
$ git branch -d dev
     2、分支冲突
          合并分支的时候总会出现冲突, 分支冲突的原因是两个分支同时做了各自的修改,在合并的时候git就会检测到合并位置出现了两种不同的修改,出现冲突的解决办法是在master修改好冲突文件,然后重新提交就可以了。多人协作冲突,当你要提交到dev的时候发现和其他人的文件修改冲突了,可以先git pull拉取下来,然后再本地合并,解决冲突后再推送。Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容。
          解决冲突之后可以使用git log命令查看分支合并情况。 

$ git log --graph --pretty=oneline --abbrev-commit

Git远程和分支管理的更多相关文章

  1. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  2. python使用git进行版本控制-分支管理

    1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...

  3. git远程删除分支但本地git branch -a仍能看到解决

    git远程删除分支但本地git branch -a仍能看到解决 在gitlab页面删除分支 但是本地能可以看到 $ git branch -a br_dev br_to_delete * master ...

  4. Git如何进行分支管理?

    Git如何进行分支管理?     1.创建分支     创建分支很简单:git branch <分支名>     2.切换分支     git checkout <分支名>   ...

  5. Git 远程仓库的管理和使用

    要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库 ...

  6. 史上最浅显易懂的Git教程3 分支管理

    假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...

  7. 【Git教程】Git教程之分支管理

      在前一篇文章中,主要针对Git本地仓库和远程仓库的基本操作命令进行了简要介绍,本文主要集中介绍Git的另一个主要的特点:分支管理和多人协作. 什么是分支管理   当一个任务需要多人协作完成时,每个 ...

  8. git基本操作:分支管理

    一.创建测试项目 1.新建GitHub仓库 在GitHub上面新创建一个仓库,用来演示分支管理,如下图所示: 点击“Create repository”按钮创建新仓库. 2.将本地仓库项目上传到Git ...

  9. Git(3):分支管理

    Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作. 创建分支命令 $git branch <branch n ...

随机推荐

  1. G2 DT时代的图形语法 正式发布

    G2有一个高大上的名字叫做:The Grammar Of Graphics——图形语法.它是一个强大的语义化图表生成工具,它提供了一整套图形语法,可以让用户通过简单的语法搭建出无数种图表,并且集成了大 ...

  2. 练习2 练习目标-使用引用类型的成员变量:在本练习中,将扩展银行项目,添加一个(客户类)Customer类。Customer类将包含一个Account对象。

    package banking; public class Customer { private String firstName; private String lastName; private ...

  3. Netty学习四:Channel

    1. Channel Channel是Netty的核心概念之一,它是Netty网络通信的主体,由它负责同对端进行网络通信.注册和数据操作等功能. 1.1 工作原理 如上图所示: 一旦用户端连接成功,将 ...

  4. 编译原理 LL1文法First集算法实现

    import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.TreeMap ...

  5. 基于TCPCopy的Dubbo服务引流工具-DubboCopy

    TCPCopy顾名思义,就是一个可以将tcp流量复制的工具(其实也可以复制UDP).有了这样一个工具,我们就可以真实的复制线上流量,然后将这些流量复制到我们的测试服务器上.这样就可以很容易模拟线上真实 ...

  6. C#中使用Oracle存储过程返回结果集

    问题: 在MSSQLServer中定义的存储过程可以直接返回一个数据集,如: create procedure sp_getAllEmployees as SELECT * FROM [NORTHWN ...

  7. Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .编译Spark .时间不一样,SBT是白天编译,Maven是深夜进行的,获取依赖包速度不同 ...

  8. Android之自定义ListView(一)

    PS:自定义View是Android中高手进阶的路线.因此我也打算一步一步的学习.看了鸿洋和郭霖这两位大牛的博客,决定一步一步的学习,循序渐进. 学习内容: 1.自定义View实现ListView的I ...

  9. Windows Azure Web Site (13) Azure Web Site备份

    <Windows Azure Platform 系列文章目录> 我们在使用Windows Azure Web Site的时候,经常会遇到需要对Web Site进行备份的情况.在这里笔者简单 ...

  10. 用SQL语句查找包含有某个关键字的存储过程、触发器、函数等(仅适用MS SQL SERVER)

    第一种方法:利用系统表进行查询   --将text替换成你要查找的内容  select name  from sysobjects o, syscomments s  where o.id = s.i ...