*为什么要用git?
简单说是因为git最流行啊,为什么流行呢?因为git是分布式的管理系统,不用联网就能提交入库,因为每台机子都存了一个完整的git库。
左:集中式 右:分布式
另外,git方便分支管理,git创建分支是创建了指针,不会拷贝代码,所以非常简便。当然,还有其他方面的优点。
最后,还有罗胖推荐哦!
罗辑思维 2014:南明为什么扛不住?
http://v.youku.com/v_show/id_XNzU5Mjk5NDAw.html
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*如何安装git?
1.下载git
推荐下载包含Linux运行环境的git,地址:http://msysgit.github.io/ ,因为windows在支持linux内核方面问题很多。
也可以在git官网下载http://www.git-scm.com/downloads
2.安装
在Windows Explorer integration选项中将“Git Bash here”和“Git GUI here”打对勾。
在“Adjusting your PATH environment”选项中,选第一项是只用git bash来操作,选第二项可以从windows命令行操作
在“Configuring the line ending conversions”选项中,
第一个选项:如果是跨平台项目,在windows系统安装,选择;
第二个选项:如果是跨平台项目,在Unix系统安装,选择;
第三个选项:非跨平台项目,选择。
在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为git是分布式版本控制系统,所以每台机子都要告诉它自己的名字和email地址,以方便管理。global参数的意思是说,这台计算机的所有仓库都使用这个配置。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*如何与git服务器相连?
git在本地安装好后,你可能需要马上与服务器链接。按理说,git是分布式的,不需要服务器,但有时候不见得所有人都在线,因此我们就把一台机器当作在线服务器,在那里建好仓库,大家都往这台机器上提交。
如果你没有git服务器,也没关系,可以利用公开的服务器,就是github。这里先介绍与github建立链接并提交本地仓库或把远程的仓库克隆到本地。当然,你需要一个github账户。然后把本地的ssh公开密钥与github账户绑定。git支持ssh通道,所以需要ssh密钥,以便github确定到底是不是你本人的提交,防止有人冒充你提交。
先检查本地是否有ssh密钥:
$ git ~/.ssh
如果有.ssh目录,可以
cd .ssh
ls
看是否有
id_rsa id_rsa.pub
如果有可以删除 重新生成
$ ssh-keygen -t rsa -C "youremail@example.com"
一路点回车,最后就生成了.ssh目录。
<pre name="code" class="java">Enter file in which to save the key (/home/you/.ssh/id_rsa):
<pre name="code" class="java">这个时候输入你在github上设置的密码:
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
可以继续回车,不设密码,方便后期提交。
查看.ssh目录 ,用记事本打开id_rsa.pub,把内容拷贝到github上去。
接着,检查是否链接好了:
$ ssh -T git@github.com
当你看到这些内容放入时候,直接yes
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
看到这个内容放入时候,说明就成功了。
Hi username!
You've successfully authenticated, but GitHub does not provide shell access.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*如何把本地代码提交到github上?
有了git,这时就可以建立个本地库玩玩。
git bash上,cd到相应目录,比如我要在d盘下建一个仓库hellogit
$ cd d:/
$ mkdir hellogit
$ git init
此时在hellogit文件夹下,生成了一个.git的文件,hellogit这个仓库就建好了!
.git就是管理这个仓库的版本库。这时版本库里分为暂存区和git自动创建的master分支。
此时,我们在工作区,也就是在hellogit这个文件夹下保存一个txt文件,比如test.txt
接着,把这个文件添加到暂存区
$ git add test.txt
然后,把这个文件从暂存区提交到master分支
$ git commit test.txt -m"add a test file"
这个时候,我们才能把本地的库提交到远程的github仓库,提交前,需要在github上建立对应的仓库。
,登陆GitHub,然后,在右上角找到“new repository”按钮,创建一个新的仓库:
在Repository name填入hellogit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
根据提示,我们在git bash上输入:
$ git remote add origin https://github.com/AllenFFL/hellogit.git
如果链接不上,改为:(格式git remote add origin git@server-name:path/repo-name.git)
使用-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。以后本地做了任何修改,可以直接输入:
$ git push origin master
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*如何克隆github上的仓库到本地?
如果你事先在github上建立了一远程库hellogit,可以方便的克隆到本地:
$ git clone git@github.com:AllenFFL/itouzi.git(地址从github右侧获得 上图)
这时,你就可以在本地看到这个仓库了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
参考资料: