一、远程
      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. WPF入门教程系列二——Application介绍

    一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...

  2. hibernate(三)基本配置,log4j、JUnit配置

    一.基本配置 1.<property name="hbm2ddl.auto">update</property> 改项配置有4个选项: validate:当 ...

  3. IllegalStateException : Web app root system property already set to different value问题详解

    一.问题描述     最近公司有了一个新项目,这个项目最近部署到测试服务器上的时候出现了一个问题. 严重: Exception sending context initialized event to ...

  4. Android线程之主线程向子线程发送消息

    和大家一起探讨Android线程已经有些日子了,谈的最多的就是如何把子线程中的数据发送给主线程进行处理,进行UI界面的更新,为什么要这样,请查阅之前的随笔.本篇我们就来讨论一下关于主线程向子线程如何发 ...

  5. exp/imp 参数说明,中英对照

    在任意可用exp/imp(导出/导入)命令的主机上,都可以通过exp/imp help=y查看所有的参数说明. 1.exp参数说明 2.imp参数说明 3.exp参数说明(中文) 4.imp参数说明( ...

  6. sql server 利用发布订阅方式实现数据库同步问题

    删除本地快发布时报错: 无法作为数据库主体执行,因为主体 "dbo" 不存在.无法模拟这种类型的主体,或您没有所需的权限.已将数据库上下文更改为 'numberForcast'. ...

  7. C# 根据自定义线程定时器 生成随机订单

    这个源之于一个朋友问我的一个问题,他说他们的需求是在一天之内随机抽取数据生成订单,还不能让客户看出来. 随机生成的订单还分概率抽取不一定的状态值,那么根据我之前写的定时器线程执行器,我们设计需要一个定 ...

  8. Laravel5设计json api时候的一些道道

    对于返回数据格式没规整的问题 在开发api的时候,这个问题是和客户端交涉最多的问题,比如一个user结构,返回的字段原本是个user_name的,它应该是string类型.但是呢,由于数据库设计这个字 ...

  9. Android Studio快捷键每日一练(5)

    原文地址:http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/ 42.Enter键和Tab键补全 快捷键:Ent ...

  10. 用Qt写软件系列五:一个安全防护软件的制作(2)

    引言 在上一篇中讲述了主窗体的创建和设计.主窗体的无边框效果.阴影效果.拖动事件处理.窗体美化等工作在前面的博客中早就涉及,因此上篇博文中并未花费过多笔墨.这一篇继续讲述工具箱(Tool Button ...