设为首页 收藏本站
查看: 1110|回复: 0

[经验分享] mac os x使用Git简易入门教程

[复制链接]

尚未签到

发表于 2018-1-16 09:30:45 | 显示全部楼层 |阅读模式
  具体如下;
  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/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435595-1-1.html 上篇帖子: git log 查看某文件的修改历史 下篇帖子: git,github在windows上的搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表