因为有在开始搞项目,所以要学习下git. 然后有了这篇文章.
关于git使用及介绍
git你可以不用它,但是你必须要会它….没有为什么… 所以我就不介绍git是什么以及为什么要用了.. 网上一大堆.
学习git首先要了解集中式和分布式的概念,要了解git为什么好,好在哪…
一 : 集中式和分布式
集中式版本控制系统 : (例 : CVS及SVN)
版本库(repository)是集中存放在中央服务器的(版本库 :你可以简单的把它看成一个目录),而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
集中式版本 必须要联网才可以工作.
分布式版本控制系统 : (例 : git |
BitKeeper |
以及类似git的Mercurial和Bazaar等) |
- 分布式没有中央服务器,每个用户的电脑上都是一个完整的版本库.
- 既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
比较 :
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
二 : 安装
- 可以通过homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
- 也可以通过xcode, 笔者的Xcode是9.x版本,没找到设置的地方. 而且笔者平常多用于Python.所以没配置.
在进行安装前,要说一下,Git和SVN一样,都需要创建一个服务器的,他们都可以创建自己的版本管理服务器。对于个人和小团队来说,使用托管服务器可能更合适。
常见的有Github 和 Bitbucket。Github没有个人免费仓库使用,代码放上去就是开源的。Bitbucket的个人仓库相关页面已经基本汉化了。注册流程也比较简单。
MAC上最好的GIT免费GUI工具是SourceTree(没有之一)。此外,最好的GIT代码开源网站是GitHub,最好的GIT代码私有库是BitBucket。
安装过程:
1,下载Git installer,地址;http://git-scm.com/downloads
2,下载之后打开,双击.pkg安装
3, 打开终端,使用git --version或者which git命令查看安装版本,有就是安装成功了
4,创建一个全球用户名、全球邮箱
git config --global user.name "ugfly"
git config --global user.email "MY_NAME@example.com"
5、安装成功后打开终端
cd ~进入根目录
输入命令ssh-keygen生成ssh-key,如果有提示,一直按回车
6、将SSH key添加到GitHub。登录到GitHub页面,Account Settings->SSH Public Keys->Add another key
将生成的key(id_rsa.pub文件)内容copy到输入框中,save。
commd+shift+g进入/Users/chen/.ssh/就可以看得见私钥和公钥
私钥的名字是 id_rsa,是服务器确定你身份的唯一凭证。
公钥的名字是id_rsa.pub。把这个文件发给仓库管理员,仓库管理员会把这个公钥放到服务器上,以后git就通过上面的私钥跟服务器交互了。如果使用github就是自己把公钥内容添加上去
7、找一个目录执行git clone http://xxx.git(从服务器端克隆git库,当然这个要服务器管理员给你权限和帐号),以后xxx目录就是一个git目录,可以在这个目录下执行git操作
三 : Linux基础命令
- Sudo -s 获取绝对用户权限
- Cd xx 进入xx目录
- Ls (-a/-A) 显示当前路径下所有文件(隐藏的)
- Pwd 显示当前绝对路径
- Mkdir xx 创建文件夹xx
- Man xx 查看xx命令手册
接下来是Git基础命令含义 :
- clone 克隆远程仓库
- init 初始化仓库
- remote 连接远程仓库
- pull 从远程仓库下拉获取新数据
- push 将本地仓库新增或修改文件上传到远程仓库
- add 添加文件或者修改文件,commit以及push之前使用
- log 当前从仓库提交过的日志信息
- status 当前仓库版本状态
- commit 提交到当前仓库中
- branch 分支命令,相关增删查操作
- checkout 使用远程仓库最后衣蛾版本完全覆盖当前仓库内容 / 选择分支branch
- diff 对比版本内容
- merge 合并版本内容
日常操作:
git init
git add .
git commit -m'first commit'
这步是与你远程仓库绑定,每次你新建好远程仓库后,会有提示教你如何建立绑定。
git push origin master
如果你之前上线的代码有bug,然后你修改了之前的代码,并且加了点新代码,现在要提交到远程仓库,使用上述那种方法会报错。
git pull origin master
git log
git status
git branch new_分支名
git branch
git checkout new_分支名
git add .
git commit -m'修复之前bug,添加新代码'
git checkout master
git merge new_分支名 !!!!!!!!!!!!!!!!!!!!!!
git push origin master
git branch -d new_新分支