一、git简介

什么是git?
git是一款开源的分布式版本控制工具
在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
 
git的起源
作者是Linux之父:Linus Benedict Torvalds
当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
 
git的现状
在国外已经非常普及,国内并未普及(在慢慢普及)

越来越多的开源项目已经转移到git

CVS
最早的开源、免费的集中式版本控制工具
自身设计有问题,会造成提交文件不完整,版本库莫名其妙损坏的情况
 
SVN
修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制工具
 
ClearCase
收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢
能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗或者人傻钱多
 
VSS
微软的集中式版本控制工具,集成在Visual Studio中
 
 

二、分布式版本控制和集中式版本控制

集中式版本控制
分布式版本控制
 
 

三、git和SVN

1、git和SVN的简单对比
速度
在很多情况下,git的速度远远比SVN快
 
结构
SVN是集中式管理,git是分布式管理
 
其他
SVN使用分支比较笨拙,git可以轻松拥有无限个分支
SVN必须联网才能正常工作,git支持本地版本控制工作
旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git
 
2、SVN的工作流程
 
3、git的工作流程
分布式和集中式的最大区别在于:在分布式下
开发者可以本地提交
每个开发者机器上都有一个服务器的数据库
 

四、如何使用git

1、使用git
跟SVN一样,你可以通过命令行敲指令或者图形界面客户端使用git
在Mac上,比较好用的git图形界面客户端有
SourceTree
 
GitHub
下载地址:https://mac.github.com
不过它是专门为GitHub网站而设计的
 
Xcode
 
2、git常用指令
git help :git指令帮助手册
查看其他指令的做法:git help 其他指令
git config :git的配置信息相关(修改的是.git/config文件)
配置用户名:git config “user.name” 用户名(用于跟踪修改记录)
配置邮箱:git config “user.email” 邮箱(用于多人开发间的沟通)
查看配置信息:git config –l
编辑配置信息:git config –e(用vim编辑,:wq是退出vim编辑器)
设置指令的别名:git config alias.别名 原指令名称
设置带参数指令的别名:git config alias.别名 “原指令名称 参数”
将此设置应用到整个系统中:git config ––gloabal
 
git status :查文件的状态
查看某个文件的状态:git status 文件名
查看当前路径所有文件的状态:git status
git log :查看文件的修改日志
查看某个文件的修改日志:git log 文件名
查看当前路径所有文件的修改日志:git log
用一行的方式查看简单的日志信息:git log ––pretty=oneline
查看最近的N次修改:git log –N(N是一个整数)
 
git diff :查看文件最新改动的地方
查看某个文件的最新改动的地方:git diff 文件名

查看当前路径所有文件最新改动的地方:git diff

 
git init :初始化一个空的本地仓库,生成一个.git目录,用于维护版本信息
在当前路径初始化仓库:git init
在其他路径初始化仓库:git init 仓库路径
 
git add :将工作区的文件保存到暂缓区
保存某个文件到暂缓区:git add 文件名
保存当前路径的所有文件到暂缓区:git add .(注意,最后是一个点 . )
 
git commit :将暂缓区的文件提交到当前分支
提交某个文件到分支:git commit -m ”注释” 文件名
保存当前路径的所有文件到分支:git commit -m ”注释” 
 
git reset :版本回退(建议加上––hard参数,git支持无限次后悔)
回退到上一个版本:git reset ––hard HEAD^
回退到上上一个版本:git reset ––hard HEAD^^
回退到上N个版本:git reset ––hard HEAD~N(N是一个整数)
回退到任意一个版本:git reset ––hard 版本号(版本号用7位即可)
 
git reflog :查看指令使用记录(能够查看所有的版本号)
 
git rm:删除文件(删完之后要进行commit操作,才能同步到版本库)
 
git clone:下载远程仓库到本地
下载远程仓库到当前路径:git clone 仓库的URL
下载远程仓库到特定路径:git clone 仓库的URL 存放仓库的路径
git pull:下载远程仓库的最新信息到本地仓库
 
git push:将本地的仓库信息推送到远程仓库
 
 

五、工作原理

如果想了解git的工作原理,有几个核心概念必须知道
工作区(Working Directory):仓库文件夹里除.git目录以外的内容
 
版本库(Repository):.git目录,用于存储记录版本信息
暂缓区(stage)
分支(master):git自动创建的第一个分支
HEAD指针:用于指向当前分支
 
git add和git commit的原理
git add :把文件修改或者新添加的文件添加到暂存区
git commit :把暂存区的所有内容提交到当前分支
 
 
 

六、远程仓库

如果是多人团队开发,最好还是搭建一个远程仓库
 
搭建远程仓库的途径
自己搭建一个git服务器:费时费力
在GitHub上托管项目:公开项目免费、私有项目收费,很多第三方开源项目
在oschina上托管项目:完全免费,在国内访问速度快(推荐使用)
 
 

七、搭建GitHub远程仓库

1、配置SSH Key
注册一个GitHub帐号:https://github.com
打开“Account Settings
点击“SSH keys”
配置Mac的SSH Key的公钥(用于限制提交)
 
查看ssh版本 $ ssh –v
打开终端,$ ssh-keygen 一路enter下。
在Mac上生成SSH Key(在终端输入下面指令)
cd ~/.ssh
ssh-keygen -t rsa -C "你的邮箱地址”
然后一直敲回车
 
然后就会在~/.ssh目录下生成SSK Key的秘钥对
id_rsa :私钥,不可泄露
id_rsa.pub :公钥,可以公开(将这个文件的内容粘贴到GitHub上)
 
利用cat指令可以查看文件的内容
cat id_rsa.pub
 
2、添加仓库
 
拷贝仓库地址,用于下载到本地
 
如果想删除仓库,也很简单
 
 
 
 

八、搭建oschina远程仓库 

1、创建仓库
注册一个oschina帐号:https://git.oschina.net
 
仓库地址
 
添加项目组成员

随后需要在终端设置git的邮箱和用户名,不然没有访问仓库的权限

2、删除仓库

iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )的更多相关文章

  1. iOS开发——源代码管理——SVN

    一.源代码管理(svn)简介 01. 源代码管理工具概述 ======================================================================= ...

  2. iOS开发——源代码管理——svn 命令行下常用的几个命令

    1.将文件checkout到本地目录    svn checkout path(path是服务器上的目录)    例如:svn checkout svn://192.168.1.1/pro/domai ...

  3. IOS开发依赖管理工具CocoaPods

    CocoaPods IOS开发依赖管理工具 CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It ...

  4. 版本控制:集中式 vs 分布式

    集中式 CVCS的版本库集中存放在中央服务器,而工作时都是用自己的电脑,所以要先从中央服务器取得最新的版本,然后工作完后再将自己的代码推送给中央服务器. CVS:最早的.开源.免费.由于自身设计的问题 ...

  5. 集中式版本控制VS分布式版本控制

    CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所 ...

  6. Git学习系列之集中式版本控制系统vs分布式版本控制系统

    不多说,直接上干货! Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...

  7. git分布式版本控制系统权威指南学习笔记(六):git reset、get stash、git checkout总结

    文章目录 1. 概述 2. 如何把修改暂存起来,留着以后使用? 2.1 使用场景 2.2 git stash 暂存进度 2.3 查看进度 2.4 恢复进度 3. 如何撤销工作区的修改? 4. 如何把暂 ...

  8. Git常用指令和GitHub操作总结

    Git版本管理工具(CVS) 首先粘上两个Git的基础链接~ 阮一峰:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 廖雪峰:h ...

  9. Git工作流指南:集中式工作流

    转载:http://blog.jobbole.com/76847/ 本文由 伯乐在线 - 李鼎 翻译.未经许可,禁止转载!英文出处:atlassian.欢迎加入翻译组. 转到分布式版本控制系统看起来像 ...

随机推荐

  1. springMVC的注解@RequestParam与@PathVariable的区别

    1.在SpringMVC后台控制层获取参数的方式主要有两种, 一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取. ...

  2. RAL 标准颜色表(RAL Color Chart)

    根据经典RAL系统,本网页显示RAL标准颜色的概览.RAL用于信息,为图画和涂层定义标准颜色.现在,它是最流行的中欧颜色标准.这些颜色广泛用于建筑学,建筑物,工业和道路安全. 图表中的RAL颜色尽可能 ...

  3. Python QQ群

    微信公众号:Python中文社区 Python初级技术交流QQ群:152745094Python高级技术交流QQ群:273186166Python网络爬虫组QQ群:206241755PythonWeb ...

  4. 10月21日下午PHP常用函数

    函数四要素:返回类型  函数名  参数列表  函数体 //最简单的函数定义方式 function Show() { echo "hello"; } Show();//输出结果为he ...

  5. Runner之记计帐项目的典型用户和用户场景

    项目任务:编写日历选择界面和查明细界面(查看某一天的具体收支出状况) 1.背景 ①典型用户 (1)姓名:张云 (2)年龄:17~23 (3)收入:家长给的生活费与自己兼职(1500元/月) (4)代表 ...

  6. pickle模块简单使用

    import pickle with open("school_info","wb") as school: user_input = str(input(&q ...

  7. FBX

    http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/index.html http://forums.autodesk.com/t5 ...

  8. ecshop 订单-》设置默认收货地址,或者删除

    设置位置:ecs_users标的   country字段,默认是0,默认地址是 users_address 的address_id 设置默认收货地址 /** * 设置默认地址 * * @access ...

  9. xenserver安装使用

    1.下载参考:http://blog.sina.com.cn/s/blog_61c07ac50102vf55.html 2.安装(个人笔记本配置了12G的内存,所以在VM Workstation 11 ...

  10. System.BadImageFormatException: Could not load file or assembly

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe C:\_PRODUKCIJA\Debug\DynamicHtmlT ...