一、远程
      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. String详解

    在开发中,我们都会频繁的使用String类,掌握String的实现和常用方法是必不可少的,当然,我们还需要了解它的内部实现. 一. String的实现 在Java中,采用了一个char数组实现Stri ...

  2. Javascript函数中的高级运用

    先介绍一下js中的高阶函数,所谓的高阶函数就是,一个函数中的参数是一个函数或者返回的是一个函数,就称为高阶函数. js中已经提高了一下高阶函数,使用起来非常棒,当然我们也可以自己实现,我介绍几种ES5 ...

  3. tomcat本地部署war包的方式

    最近学习java,在本地tomcat部署时,主要采取以下方式: 一.本地构建生成war包 在本地项目中的terminal下,使用命令 “mvn clean install”或 先执行“mvn clea ...

  4. 12个免费的 Twitter Bootstrap 后台模板

    在互联网上提供很多免费的 Bootstrap 管理后台主题.所有你需要做的就是将它们下载并安装它们,这真的不是什么难事.问题是如何寻找到能够完美符合您的网站需求的主题.当然,你可以自己制作自定义的主题 ...

  5. Windows Azure HandBook (6) Azure带宽与Azure Blob云存储

    <Windows Azure Platform 系列文章目录> 在笔者这几年Azure售前工作中,经常会遇到客户提同样的问题:Azure 虚拟机的带宽是多少?Azure提供独享带宽吗?这个 ...

  6. win7+theano with GPU enabled

    要做卷积神经网络的一些东西,所以要装theano,网上很多Theano安装教程版本较老,而各安装包更新很快,参考价值有限.走了很多弯路才装好,把这个过程记录下来,希望对大家有帮助~ ~ 我的配置:wi ...

  7. Halcon与opencv格式的转换

    IplImage* ImageProcess::HImageToIplImage(Hobject &Hobj) { IplImage* pImage; HTuple htChannels; c ...

  8. Redis Lua脚本原理

    2.6版本之后支持嵌入Lua脚本,客户端使用Lua脚本,直接在服务器端原子的执行多条命令 Lua脚本执行过程 创建并修改Lua环境 1 创建基础Lua环境 2 载入函数库 3 创建全局表格Lua 4 ...

  9. 语义化HTML:ul、ol和dl

    一.语义化元素   1. ul标签 W3C草案: The ul element represents an unordered list of items; that is, a list in wh ...

  10. 行列式(三):n阶行列式

    1.数学定义   n阶行列式定义如下: 2.算法实现 函数名: GetValue() 功能:返回一个行列式的值 Private Function GetValue() Dim gValue As Do ...