一.git 简介

1.Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

2.Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

3.Git 是由“Linux之父” Linus Torvalds 创建的。因为他发现找不到满意的方案来管理 Linux Kernel 联合开发的版本控制,就自己写了 Git。

 

说到优势,那么自然是相对与SVN而言的

  1. 版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
  2. 更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
  3. 把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
  4. 支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
  5. 分布式版本库,无单点故障,内容完整性好。内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

二 .git托管到oschina

开源中国社区官方网站


  • 开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的、快捷更新的用来检索开源软件以及交流使用开源经验的平台
  • 目前国内有很多公司会将公司的项目部署在 OSChina

与 GitHUB 的对比

  1. 服务器在国内,速度更快
  2. 免费账户同样可以建立 私有 项目,而 GitHUB 上要建立私有项目必须 付费

使用

  • 注册账号
  • 建议不要使用QQ邮箱,使用QQ邮箱可能会收不到验证邮件
  • 添加 SSH 公钥,进入终端,并输入以下命令
  • 进入.ssh目录
# 切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹
$ cd ~/.ssh
#如果.ssh文件夹不存在,可以执行指令自行创建
$ mkdir ~/.ssh
# 查看当前目录文件
$ ls
  • 生成 RSA 密钥对
$ ssh-keygen -t rsa -C "你的邮箱@xxx.com"
# 为了方便,全程回车即可(不用了输入ras文件名及密码)
  • 查看公钥内容
$ cat ~/.ssh/id_rsa.pub
  • 将公钥内容复制并粘贴至-oschina添加公钥
    file:///Users/z/Library/Containers/com.tencent.qq/Data/Library/Application%20Support/QQ/Users/3229989970/QQ/Temp.db/8710E87E-FCBC-4C90-8F96-9379CD5155BA.png
  • 注意:公钥内容以ssh-rsa开头,你的邮箱结尾, 拷贝时不能多一个空格,也不能少一个空格,格式等必须和生成的公钥一致
  • profile/sshkeys
  • 测试公钥

# 测试 SSH 连接
$ ssh -T git@git.oschina.net

 

# 终端提示 Welcome to Git@OSC, git昵称!` 说明连接成功


  • 在oschina新建项目
  • 克隆项目

配置好sshkey之后, 以后只需要拷贝ssh链接地址,然后利用git指令即可进行相关操作

$ git clone git@git.oschina.net:xxx/ProjectName.git
  • 注意:oschina仓库对应多种地址,一个是通过http访问的地址,一个是通过ssh访问的地址这里使用ssh方式 
  • 添加 gitignore
# /Users/NJ-Lee/Desktop/gitignore-master/ 是保存 gitignore 的目录
$ cp /Users/NJ-Lee/Desktop/gitignore-master/Swift.gitignore .gitignore
$ git add .
$ git commit -m"添加gitignore"
$ git push
  • 提示:
  • 可以从 https://github.com/github/gitignore 获取最新版本的 gitignore 文件
  • 添加 .gitignore 文件之后,每次提交时不会将个人的项目设置信息(例如:末次打开的文件,调试断点等)提交到服务器,在团队开发中非常重要
  • 如果未配置phrase在Xcode添加仓库时要选SSH Keys   Passphrase 栏空着  然后add 就能添加成功

你们都是有经验的开发人员