具体如下;

1, 首先要了解什么是Git。

简而言之,Git是一个分布式的代码版本管理工具。类似的常用工具还有SVN,CVS。

概念了解参见;http://baike.baidu.com/subview/1531489/12032478.htm?fromId=1531489&from=rdtself&fr=wordsearch

2,为什么要使用Git。

Git相比SVN,CVS,最大的特点也是优点在于提供分布式的代码管理。这不是说SVN等不具有该功能,但就目前来看,Git更完善,而且也越来越多地被人们所接受。前途和易用是我一向选择的基准。

在使用中,目前体验到最大的相比SVN的好处有;
分支代码只有一份!log在本地!合并代码更加方便!更加安全!目录更加简洁!

简单做下解释;

分支代码只有一份!
使用过svn的童鞋想必都知道,当我们要开发一个新功能或者增加一个新版本或者修改一个复杂bug的时候,通常需要copy整份代码到本地一个目录,然后添加到svn服务器上进行代码管理。
而Git不同,Git可以创建许多branches,每个branch都是独立的,当我们需要修改代码的时候,commit也只是对本地仓库的修改。如果使用SourceTree,我们会发现在工具栏的Git Flow功能,已经很好的为此做了准备。

log在本地!
svn的log都是存储在服务器上的,当我们要查阅修改记录的时候,必须要能够连接上远程服务器,并且具有权限。而Git不同,Git对于本地仓库的修改记录都是在本地上的,方便查阅。

合并代码更加方便!
因为Git支持本地无限Branches,当我们个体在本地创建多个branches用于不同目的的时候(修改,新增,探索),合并一份代码显然要比svn合并一堆工程copy更加简单。

更加安全!
Git的commit命令不同于SVN,commit只是对本地仓库代码的一次更新。当需要提交到master远程仓库,或者其他远程分支仓库的时候,需要使用push功能。虽然增加了一个过程,却可以防止随意修改导致后期合并出现大问题的风险。

目录更加简洁!
在Git本地仓库根目录,只有一个.git文件,它包含了所有的管理信息。而SVN想必大家都知道,每个子目录下都有噁心的.svn。这个当需要修改文件冲突等问题时,就需要考虑了。肯定是一个文件简单。

3, 如何安装Git到MAC OS X
这里介绍两种方式;
一,使用Git command-line
二,使用GUI工具SourceTree,功能很强大,很方便

在进行安装前,要说一下,Git和SVN一样,都需要创建一个服务器的,他们都可以创建自己的版本管理服务器。对于个人和小团队来说,使用托管服务器可能更合适,
常见的有Github 和 Bitbucket。这里我介绍下Bitbucket,Github因为没有个人免费仓库使用,代码放上去就是开源的,所以这里我选择Bitbucket。另外,现在Bitbucket的个人仓库相关页面已经基本汉化了。注册流程也比较简单。
详见链接;https://bitbucket.org/

这里先介绍下使用Command-line。
1,下载Git installer,地址;http://git-scm.com/downloads
2,下载之后打开,双击.pkg安装
3, 打开终端,使用git --version命令查看安装版本,有就是安装成功了
/*以下4.5命令如果已经使用Bitbucket创建过了,将会自动包含*/
4,创建一个全球用户名
git config --global user.name "FIRST_NAME LAST_NAME"
5,创建一个全球邮箱
git config --global user.email "MY_NAME@example.com"
6, 如果不想每次连接远程仓库都输入密码的话,输入如下命令
git credential-osxkeychain
------>等待
git config --global credential.helper osxkeychain
# Set git to use the osxkeychain credential helper
到此Git就安装完成了。

二,关于SourceTree这里先不做介绍。初始安装和SVN类似。

4, 如何使用Git
这里也介绍两种方式
一,使用command
二,使用SourceTree

先介绍第一种;Command line

使用终端的命令行时,首先我们要有一定的linux命令行知识。实际使用中经常用到的比较少,这里只介绍一些必要的。
参考链接;http://www.renfei.org/blog/mac-os-x-terminal-101.html

linux基础命令;
sudo -s   获取绝对用户权限
cd xxx    进入xxx目录
ls (-a/-A)   显示当前路径下所有文件(隐藏的)
pwd       显示当前绝对路径
mkdir  xxx   创建文件夹xxx
man xxx     查看xxx命令手册

然后介绍下Git基础命令的含义;
clone   克隆远程仓库
init       初始化仓库
remote 连接远程仓库
pull      从远程仓库下拉获取新数据
push    将本地仓库新增或修改文件上传到远程仓库
add     添加文件或者修改文件,commit以及push之前使用
log      当前仓库提交过的日志信息
status  当前仓库版本状态
commit 提交到当前仓库中
branch 分支命令,相关增删查操作
checkout 使用远程仓库最后一个版本完全覆盖当前仓库内容/选择分支branch
diff      对比版本内容
merge   合并版本内容
详细参见链接;https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+Documentation+Home

使用Git,我们当然要有一个远程仓库,这里假设我们已经创建好了Bitbucket账号(创建远程仓库repository使用)。
创建远程仓库的方法这里也介绍两种方式。
一,使用Git 命令创建
二,在Bitbucket上创建

第一种,使用Git 命令行

初始化
git init
--------->
从Bitbucket上复制仓库地址
--------->
添加别名为origin的源到远程仓库地址
git  remote  add  origin  https://myAccountName@bitbucket.org/myAccountName/myRepositoryName.git

第二种,Bitbucket上创建远程仓库
注册之后按照提示创建即可,非常简单。。。不再复述。
详见参考;https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+Documentation+Home中的Bitbucket 101文档

---------以上为初始创建--------------华丽的分割线---------------以下为操作版本库-------------------

有了远程仓库Repostiory,我们该添加代码或者其他文件什么的了

这里还是介绍两种;
一, 使用command-line
二, 使用SourceTree

第一种, 使用command-line
在本地目录链接了远程仓库后(clone命令),使用如下方法操作文件。

git add xxx           添加或要修改的xxx文件
------------------>
git commit -m "adding repo instructions"         提交xxx文件到本地仓库版本中 ;-m “XXXX” ;提交log
------------------>
git push -u origin master                提交xxx和log,到远程仓库origin(刚才创建的远程仓库Repository的别名)的master分支下

第二种, 使用SourceTree
和svn类似,具体流程为;
add----添加文件到索引----->commit------提交到本地仓库------>push--------上传到远程仓库--------->

之后就是对仓库中文件的增加修改删除操作了

Ps:记得如果不是单独另需创建的branch,每次对本地仓库操作的时候都要使用 git pull命令,更新远程仓库到本地中,防止冲突。这点和SVN的update类似

先介绍到这里,其实操作起来基本和SVN的命令行工具还有gui工具类似。
实际使用中主要区别还是分布式的开发模式不同。

欢迎大家来补充~

----------------------------------------------------------------------分割线-------------------------------以下为对Git的Branch进行说明-------------------------------------------------

Branch就是分支,Git相比SVN,最大的优点是完善的分布式管理。每一个本地的Repository,也就是仓库,都相当于一个本地版本服务器,在此基础上我们可以进行许多Branches,进行不同
类型的开发。Branch的目录统一性使得它的管理,包括merge非常简单方便。

一, 先介绍下SourceTree下的Branch,
这里提供个比较详细的博客链接,供大家参考,图文并茂,已经解释的比较详细了,不再复述。
参考地址: http://www.takobear.tw/12/post/2014/02/bear-git-flow-sourcetreegit-flow.html

二, 使用command-line创建branch分支

待续。。。。。。

----------------------------------------------------------------------分割线-------------------------------以下为小技巧-----------------------------------------------

1,   Git Stash命令
说到branches,使用Git开发较复杂的项目我想本地肯定会有多个。假如我们有一个临时紧急的重要任务,需要切换到其它branch,那么我们需要commit当前的内容。
但是,假如我修改的内容比较乱,或者其它什么原因不想提交到仓库中呢,这时候我们就可以使用Stash命令了。
$ git stash
这个命令的意思是将当前工作区的内容放到一个临时的区域,这意味着,使用git status,或者add commit命令,是无效的。
但是我们很好的保护了现场。接下来就可以checkout到其它branch工作了。

回来之后,要回复一下现场。这里要简单说明下,stash命令的一个工作机制。
当使用了stash命令后,当前工作区域的内容会被push进一个栈队列里,是的,就和navigationController一样。
假如我们要回复现场。有两种选择;pop, 或者apply

pop顾名思义,当前暂存内容从栈队列里消失了,apply则和objectAtIndex一样,队列里仍然有该暂存内容。

当多个branches被我们stash的时候,会用到如下两个命令;

git stash list: 显示Git暂存栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

Ps:记住,多多使用git status 命令,就好比,好记性不如烂笔头。git 帮我们做好的笔记要多多查看,防止出错。

2,  让Git忽略烦人不想追踪的文件
一,可以设置整个Git仓库需要忽略的文件。
$ git config –global core.excludesfile ~/.gitignore_global
$vim ~/.gitignore_global

然后在.gitignore_global文件里面设置我们想要忽略的文件。比如添加如下
# Mac OS X
*.DS_Store

# Xcode
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcuserstate
project.xcworkspace/
xcuserdata/

#Git
.gitingore
.gitingore.swp

之后保存就可以了。如果输入git status仍然提示有不期望的被追踪的文件。需要清理下
$ git rm --cache xxx    xxx为想要忽略的文件

好了,再也不会有烦人的文件了

二,可以单独为某个目录设置忽略文件。
到想要忽略文件的目录下,
$ vim .gitignore
添加如上规则的名字
保存之后,退出,就可以了。

关于忽略文件的命名规则,请参考链接:
http://bdxnote.blog.163.com/blog/static/844423520124153051409/

mac os x使用Git简易入门教程的更多相关文章

  1. Web压力测试工具 LoadRunner12.x简易入门教程--(一)回放与录制

        LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRun ...

  2. 【转】windows环境下安装win8.1+Mac OS X 10.10双系统教程

    先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区的 ...

  3. windows环境下安装win8.1+Mac OS X 10.10双系统教程

    首先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区 ...

  4. Mac OS X 懒人版安装教程(之前的图全部挂了,所以重发了)

    请版主把我之前发的那个帖子删了!因为所有的图全部挂了,所以麻烦版主了…… 安装中出现五国的话就请进入这里看看是那里的错误http://bbs.pcbeta.com/viewthread-863656- ...

  5. mac os x使用Git和bitbucket

    简而言之,Git是一个分布式的代码版本管理工具.类似的常用工具还有SVN,CVS. Git相比SVN,CVS,最大的特点也是优点在于提供分布式的代码管理.这不是说SVN等不具有该功能,但就目前来看,G ...

  6. Mac OS X平台下QuickLook开发教程

    一.引言 Quick Look技术是Apple在Mac OS X 10.5中引入的一种用于快速查看文件内容的技术.用户只需要选中文件单击空格键即可快速查看文件内容,可以在不打开文件的情况下快速浏览内容 ...

  7. Pytest自动化测试-简易入门教程(02)

    Pytest框架简介 Pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,3.还可以用来做sel ...

  8. Mac Java Idea 下面Git配置简要教程

    Mac Java Idea 配置简要教程(Sunplay) 1.找到git路径 终端输入:which git 2.在idea的设置git路径 3.测试Git的效果 测试Git成功的效果

  9. Lua简易入门教程

    环境:lua for windows (lfW)主页:http://luaforwindows.luaforge.net/https://code.google.com/p/luaforwindows ...

随机推荐

  1. Spring3 MVC入门示例

    Spring3 MVC 介绍: 1. Spring MVC 是Spring 框架的Web组件,能够开发WEB工程 2. 能与其它框架(Struts2)很好的集成 3.  Spring MVC 是以se ...

  2. UVAoj 11324 - The Largest Clique(tarjan + dp)

    题意:给定一个有向图,寻找一个点数最大集合,使得这个集合中的任意两个点 u,v, 都有u->v 或者 v->u 或者u<==>v 思路:首先将强连通分量通过tarjan算法求出 ...

  3. Could not load file or assembly 'System.Core, Version=2.0.5.0 和autofac冲突的问题

    在部署到iis的时候会出现这个状况. 解决:下载安装这个补丁 http://support.microsoft.com/kb/2468871 http://www.microsoft.com/zh-c ...

  4. 关于鼠标事件的screenY,pageY,clientY,layerY,offsetY属性 (详细图解)

    screenY 鼠标相对于显示器屏幕左上角的偏移 pageY 鼠标相对于页面左上角的偏移 (其值不会受滚动条的影响) IE9之下并不支持这个属性 但是可以写点代码计算出来. jQuery中的实现: / ...

  5. ECMAScript 6中的数组操作方法

    本文介绍ECMAScript 6即将带给我们新的数组操作方法,以及在怎样在现有浏览器应用这些新的数组特性. Note: 我将使用交替使用构造器(constructor)和类(class)两个术语. 类 ...

  6. 文本溢出text-overflow

    文本溢出text-overflow 问题:有一个新闻标题,标题宽度为200px,文字为宋体,加粗,文字大小为16px,颜色为黑色,行高为25px,要求单行显示,并且超出时显示“…”,请按要求完成效果. ...

  7. HT图形组件设计之道(三)

    上篇我们通过定制了CPU和内存展示界面,体验了HT for Web通过定义矢量实现图形绘制与业务数据的代码解耦及绑定联动,这类案例后续文章还会继续以便大家掌握更多的矢量应用场景,本篇我们先切换个话题, ...

  8. DES算法详解

    本文主要介绍了DES算法的步骤,包括IP置换.密钥置换.E扩展置换.S盒代替.P盒置换和末置换. 1.DES算法简介 DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准. DES是一个分组 ...

  9. 《构建之法》阅读有疑 与 个人Week1作业

    <构建之法>阅读有疑 在用将近五节课的时间将邹欣老师的书<构建之法——现代软件工程>第二版大致看完.虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的 ...

  10. Spring基础——在Spring Config 文件中配置 Bean

    一.基于 XML 的 Bean 的配置——通过全类名(反射) <bean <!-- id: bean 的名称在IOC容器内必须是唯一的若没有指定,则自动的将全限定类名作为 改 bean 的 ...