SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
- Git相比SVN,CVS,最大的特点也是优点在于提供分布式的代码管理。
- 分支代码只有一份!log在本地!合并代码更加方便!更加安全!目录更加简洁!
基础命令;
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 合并版本内容
Git 安装
- 安装homebrew,然后通过homebrew安装Git
终端输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 通过Homebrew安装Git
终端输入 $ brew install git
公钥的获取与使用
- 生成公钥:
终端输入 $ ssh-keygen
- 中间会让你输入生成目录,点回车默认就行。
- 会让你输入你自己的密钥,输入的得记住以后会用到(最好跟开机密码一样,不然会忘)
- 获得公钥:
- 先cd 到存放公钥的目录
终端输入 $ ~/.ssh
- 获取公钥
终端输入 $ cat ~/.ssh/id_rsa.pub
公钥在github上的使用:
- 进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的id_rsa.pub 里的key。
- 验证是否成功:
终端输入 $ ssh -T git@github.com
如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
Git的使用(基于collectionViewsample工程示范)
- 先定位到你想要的文件位置(就是放着你工程的那个的目录)
终端输入 $ cd /user/mac/Desktop/objc副本/collectionSample
- 用 git init 命令将这个目录变成可以使用git管理的仓库
终端输入 $ git init
运行:
2.将所需要的工程加入git中
终端输入 $ git add xxxx
(我的文件夹有两样东西所以加了两次)
3.用命令git commit把文件提交到仓库
终端输入 $ git commit -m "wrote a CollectionViewSample file"
5.设置username和email,因为github每次commit都会记录他们
终端输入 $ git config --global user.name "your name"
$ git config --global user.email your_email@youremail.com
当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中
6.如果不想每次连接远程仓库都输入密码的话,输入如下命令
终端输入 $ git credential-osxkeychain
7.在github创建项目
登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
在Repository name填入 ,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
8. 本地连接到github上去
终端输入 $ git remote add origin git@github.(github帐号名/Repository name.git
9.推送本地仓库至远程仓库
终端输入 $ git push -u origin master
到此新项目上传完成。
Git常见错误
1.如果输入$ Git remote add origin git@github.com:github帐号名)/gitdemo(项目名).git
提示出错信息:fatal: remote origin already exists.
解决办法如下:
1、先输入 $ git remote rm origin
2、再输入 $ git remote add origin git@github.com:github帐号名)/gitdemo(项目名).git
就不会报错了!
2.如果输入$ ssh -T git@github.com
出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。
解决办法如下:
- 先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。
3.如果输入$ git push origin master
- 提示出错信息:error:failed to push som refs to .......
解决办法如下:
1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
2、再输入$ git push origin master
- 如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.
则需要重新输入$ git remote add origin