Git简介
关于Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git的优点
版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
分布式版本库,无单点故障,内容完整性好。内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git的缺点
- 学习周期相对而言比较长。
- 不符合常规思维。
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
Github与Gitee
Github
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
优点
- pull request,issue都是杀手级的feature
- 强调个人,符合hacker更看重名誉/成就感的天性
缺点
国内访问速度太慢,经常出现connect time-out
- 原因(貌似):github的CDN被某墙屏了,由于网络代理商的原因,所以访问下载很慢。ping github.com 时,速度只有300多ms。
不能很好的解决
GB2312/GBK
,对中文不够友好wiki
功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点
Gitee
优点
速度快
缺点
来自某位网友的评价
非常不建议使用
下载个开源代码还要注册登录、上传点啥东西还要绑定手机号、上传文件数量有很大的限制
当然,你可以有一万个理由告诉我这些都是合理的。但是作为后来者,使用便利性,功能等没有超过github的话,我就有一万零一个理由不用你
Github的使用
注册
要想使用github第一步当然是注册github账号了。 之后就可以创建仓库了,Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。
官网注册
建议学习如何科学上网
配置ssh
为什么使用ssh
:链接
首先在本地创建ssh key
ssh-keygen -t rsa -C "[email protected]"
后面的[email protected]
改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/
下生成.ssh
文件夹,进去,打开id_rsa.pub
,复制里面的key
。
回到github
上,进入 Account Settings
(账户配置),左边选择SSH Keys
,Add SSH Key
,title
随便填,粘贴在你电脑上生成的key
。
为了验证是否成功,在git bash下输入:
ssh -T [email protected]
如果是第一次的会提示是否continue
,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access
。这就表示已成功连上github
。
接下来我们要做的就是把本地仓库传到github
上去,在此之前还需要设置username
和email
,因为github
每次commit
都会记录他们。
git config --global user.name "your name"
git config --global user.email "[email protected]"
进入要上传的仓库,右键git bash
,添加远程地址:
git remote add origin [email protected]:yourName/yourRepo.git
后面的yourName
和yourRepo
表示你再github
的用户名和刚才新建的仓库,加完之后进入.git
,打开config
,这里会多出一个remote "origin"
内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
创建新文件夹,打开,然后执行 git init
以创建新的 git 仓库。
分支使用
git branch
显示分支一览表
git checkout -b
创建、切换分支
git merge
合并分支