通常一个项目的开发周期相对较长,为了便于对过程中的项目版本进行管理,以及方便多人合作进行开发,常需要使用到版本管理控制软件,本篇介绍常用的版本控制器git,记之共享。

一、git是什么?有何特点?

  用官方的话说:git是目前世界上最先进的分布式版本控制系统。

  简单来讲:git就是这样一个工具,它能记录下我们每次修改项目(即文件)的变动情况,然后可以方便的进行版本的替换或者恢复。而且其他人也可以对你的项目进行下载编辑,以及版本迭代!免去了你在本地复制多份项目的副本,然后分别进行修改、回退、合并等繁琐的管理操作。

  分布式版本控制系统git相较集中式版本控制系统(如SVN)有以下几个特点:

  1、去中心化。git没有绝对的“中央服务器”,每个电脑上都有一个完整的版本库。集中式版本控制系统中只有“中央服务器”才具有全部的版本信息。

  2、本地提交。因为git在当前电脑上默认有一个本地库,提交操作会被更新到本地库中,所以即使没有网络,也可以进行提交。诸如svn这类集中式版本控制系统,必须在本地建立svn server才能进行类似的操作。

  3、分支策略。分支策略从技术上来讲是将版本节点化了,即最终的版本状态是树状的。从结果上来讲既是弱化了分支,也是强化了分支。弱化的是分支的概念,强化的是分支的功能。分支策略使得对任何开源项目感兴趣的人都可以fork项目到本地,进行个性化开发。还可以联系原作者进行功能的合并。

二、安装git

  这里介绍的安装过程是指在windows平台上安装git的过程,并配置了github作为远程仓库。

  这里直接推荐一篇参考博客吧,比较详细:http://blog.csdn.net/zxd0328/article/details/42403749

三、git的使用(github远程管理)

分布式版本管理git的使用模式是:

  1、写代码。(git add)
  2、提交到本地版本库。(git commit)
  3、从服务器拉回服务器的当前版本库,并解决服务器版本库与本地代码的冲突。(git pull)
  4、将远程库与本地代码合并结果提交到本地版本库。(git remote add)

  5、将本地版本库推到服务器。(git push)

集中式版本管理svn 的使用模式是:
  1、写代码。
  3、从服务器拉回服务器的当前版本库,并解决服务器版本库与本地代码的冲突。
  5、将本地代码提交到服务器。

实际操作时,使用GUI输入的具体命令:

【第一次添加git项目到仓库】

  1、在github建立仓库,记住仓库路径“path”
  2、到本地项目根目录下,若没有初始化,先执行:git init命令。
  3、将本地项目添加到本地库中:git add "目标工程文件(夹),若需要全部直接输入'.'"
  4、执行提交操作,确认提交到本地库:git commit -m "注释内容"(-m 表示添加注释)
  5、将本地库与github上新建的仓库关联:git remote add origin "path"
  6、将本地库项目推送到远程github库中:git push origin master(若执行时有冲突无法成功,先执行拉取远程更新的操作:git pull origin master)

【后期更新项目内容再提交的命令】
  1、添加最近的更新:git add "目标工程文件(夹),若需要全部直接输入'.'"
  2、执行提交操作,提交到本地库:git commit -m "注释内容"
  3、将本地库项目推送到远程github库中:git push origin master

补充:
从远程获取最新的版本到本地  git fetch origin master

把远程下载下来的代码合并到本地仓库  git merge origin/master

 

本文参考信息:

https://www.zhihu.com/question/20093241/answer/13950235

https://www.zhihu.com/question/20093241/answer/14026275 

最新文章

  1. python3使用pyinstaller打包apscheduler出的错
  2. Atitit GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”
  3. html5多出来的字自动隐藏并显示...
  4. Xamarin.Android之Spinner的简单探讨
  5. IOS实现动画的几种简单方法
  6. js正则表达式 验证手机号,email地址和邮政编码
  7. 初始Spring
  8. mysql 无法启动1067
  9. [svn] linux 下svn服务器的搭建
  10. [转]window10系统安装oracle11g时遇到INS-13001环境不满足最低要求
  11. Java基础知识强化之集合框架笔记44:Set集合之TreeSet保证元素唯一性和自然排序的原理和图解
  12. birkenfeld / sphinx-contrib — Bitbucket
  13. java ResultSet 结果集处理 createStatement() 里参数的意义(第一弹)
  14. IIS Express允许外部访问(外部调试)
  15. JS中的DOM操作和事件
  16. angularJS+Ionic移动端图片上传的解决办法
  17. 在删除一个指针之后,一定将该指针设置成空指针(即在delete *p之后一定要加上: p=NULL)
  18. python接口自动化-post请求3
  19. python 字符串拼接
  20. C#正则表达式_简单梳理_Emoji表情字符处理

热门文章

  1. c语言条件编译#ifdef与#if defined
  2. 【转】C++中#if #ifdef 的作用
  3. 敏捷开发之XP
  4. soapUI的bug切换版本解决
  5. SQL server 累加求和
  6. 团体程序设计天梯赛L1-024 后天 2017-03-22 17:59 68人阅读 评论(0) 收藏
  7. 设计模式11---组合模式(Composite Pattern)
  8. Entity Framework Code First 遭遇mapping 不能识别map类问题
  9. 安装了IntelliJ IDEA中文输入法光标不跟随处理办法
  10. First App on Phonegap | Cordova