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

[经验分享] 源代码管理工具 git

[复制链接]

尚未签到

发表于 2018-1-13 11:28:34 | 显示全部楼层 |阅读模式
  什么是git?
  git是一款开源的分布式版本控制工具
  在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
  git的起源
  作者是Linux之父:Linus Benedict Torvalds
  当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
  git的现状
  在国外已经非常普及,国内并未普及(在慢慢普及)
  越来越多的开源项目已经转移到git
  其他版本控制工具
  CVS
  最早的开源、免费的集中式版本控制工具
  自身设计有问题,会造成提交文件不完整,版本库莫名其妙损坏的情况
  SVN
  修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制工具
  ClearCase
  收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢
  能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗或者人傻钱多
  VSS
  微软的集中式版本控制工具,集成在Visual Studio中
  集中式版本控制

  分布式版本控制

  git和SVN的简单对比
  速度
  在很多情况下,git的速度远远比SVN快
  结构
  SVN是集中式管理,git是分布式管理
  其他
  SVN使用分支比较笨拙,git可以轻松拥有无限个分支
  SVN必须联网才能正常工作,git支持本地版本控制工作
  旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git
  SVN的工作流程

  git的工作流程
  分布式和集中式的最大区别在于:在分布式下
  开发者可以本地提交
  每个开发者机器上都有一个服务器的数据库
  拥有一个本地的代码仓库
  
  使用git
  跟SVN一样,你可以通过命令行敲指令或者图形界面客户端使用git
  在Mac上,比较好用的git图形界面客户端有
  SourceTree
  下载地址:http://www.sourcetreeapp.com/download/
  GitHub
  下载地址:https://mac.github.com
  不过它是专门为GitHub网站而设计的
  Xcode
  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远程仓库 – 配置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>

  拷贝仓库地址,用于下载到本地

  搭建GitHub远程仓库– 删除仓库
  如果想删除仓库,也很简单

  搭建oschina远程仓库 –创建仓库
  注册一个oschina帐号:https://git.oschina.net

  搭建oschina远程仓库 –仓库地址

  搭建oschina远程仓库 – 创建仓库
  添加项目组成员

  随后需要在终端设置git的邮箱和用户名,不然没有访问仓库的权限
  搭建oschina远程仓库 – 删除仓库

运维网声明 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-434618-1-1.html 上篇帖子: 干货:基于 Git Flow 的 Git 最佳实践(附加解决大家经常碰到的问题) 下篇帖子: 如何让 Git 忽略掉文件中的特定行内容?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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