最近打算把自己用sublime text2写的一些小项目通过git传到github上,但是,发现网上介绍的,大部分都是windows环境下的。这篇主要是介绍在mac环境下如何配置git 和github的集成。
一、安装git
1.下载git客户端程序,地址为:https://git-scm.com/download/mac。即可以下载到最新的客户端程序,我安装的是git2.8.1,目前最新版本。
2.打开安装包,可以看到此时的界面为:
我们需要把.pkg的安装包安装到系统当中。我双击了安装包之后,结果无法安装成功。界面为:
这里是一个坑,虽然是很简单的问题的,网上很多解决方式,由于这个需要权限,所以直接点击安装是无法成功的。方式是右击该软件,点击打开,会弹出安装程序的界面如下:
所示。然后选择打开,就可以完成安装了。
安装完成界面如下图所示:
通过命令行可以查看git 版本,git --version,如下图所示:
二、创建SSH 连接github
打开终端,输入$cd ~/.ssh,进入该目录下,然后创建ssh秘钥,用作github验证。命令为
$ssh-keygen -t rsa -C xxxxx@163.com,我用的是163邮箱注册的(github注册邮箱)。
将生成的id_rsa.pub文件打开,拷贝其中的公钥内容,在github上进行粘贴。即可创建和github的ssh链接。
这里的Overwrite是因为之前我生成过ssh,所以,会提示是否覆盖
注意:
程序会提示您输入密钥的文件名,比如输入github,不输入默认为id,按回车即可。
会要求你输入一个密码,将来在使用密钥的时候需要提供这个密码。可以输入,也可以不输入直接回车(无论输入还是不输入,都会要求你确认一次)。
确认完毕后,程序将生成一对密钥存放在以下文件夹:
/users/用户/.ssh/
密钥分成两个文件,一个私钥(id_rsa)、一个公钥(id_rsa.pub)。
私钥保存在您的电脑上,公钥交项目负责人添加到服务器上。用户必须拥有与服务器公钥所配对的私钥,才能访问服务器上的代码库。
【注意!】为了项目代码的安全,请妥善保管你的私钥!因为一旦私钥外泄,将可能导致服务器上的代码被泄漏!
接着,将生成的id_rsa.pub文件打开,拷贝其中的公钥内容,再github上进行粘贴。即可创建和github的ssh链接。
mac 下使用如下命令,将公钥的内容复制到内存里。
pbcopy <~/.ssh/id_rsa.pub
然后,打开github,点击【Settings】,选择 【SSH and GPG Keys】,点击【NEW SSH KEY】,将黏贴的内容复制到key,title可以根据自己情况填写。
如下图所示:
点击【Add SSH KEY】,完成添加SSH功能。 最后,可以进行测试,输入ssh -T git@github.com,如果连接成功,会提示如下信息:
接下来就可以上传你的代码了,在github下建自己的Repository。Create a New Repository如下:
- 选择Public。
- 点击 “Create repository”,如下图所示,表示创建成功。
三、通过git上传代码到github
目前,在GitHub上的这个shortrent
仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
我在本地已经简单地搭建了一个shortrent前端项目,现在想把这个项目通过git上传到github上。首先跳转到项目目录,然后执行git init,瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。如果你没有看到.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
注意:也不一定必须在空目录下创建Git仓库,选择一个已经有东西的目录也是可以的。我这个目录有项目存在。
和把大象放到冰箱需要3步相比,我们接着介绍如何一步步把多个文件同时提交到远程库。
第一步,用命令git add告诉Git(可以使用git add file git add /* 或者 git add *),把文件添加到仓库,
使用命令git add
,注意,可反复多次使用,添加多个文件,执行git add *,没有任何提示,如下图所示,执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用命令git commit
告诉Git,把文件提交到仓库,如下图所示,表示commit成功。
第三步,添加远程库,目前,在GitHub上的这个shortrent仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的shortrent仓库下运行命令:
命令格式: git remote add orgin SSH Key
远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库。而SSH Key可以直接去github shortrent repository 页面点击【Clone or download】去复制SSH Key
$ git remote add origin git@github.com:believejava/shortrent.git
执行上述命令,结果同git add *没有任何提示,表示添加远程库成功。
第四步,把本地库的所有内容推送到远程库上,执行
$ git push -u origin master
把本地库的内容推送到远程,用
git push
命令,实际上是把当前分支
master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样,但是,我这里执行命令后,提示如下:
原因已经讲的很清楚,远程库里存在我本地库没有的文件,这里是因为我在创建远程库的时候,添加了一个README.md,所以,我们首先执行
$ git pull origin master
简单讲,git pull
= git fetch
+ merge to local
注意:从远程抓取分支,使用git pull
,如果有冲突,要先处理冲突。
会提示输入注释,如下图所示:
可以不输入,退出后,提示如下所示界面:
表示我们本地库已经将远程库里的文件README.md下载下来了。此时,可以看到本地文件shortrent多了这个文件README.md。
然后接着执行git push -u origin master,执行结果如下:
现在,我们查看github远程库,可以看到代码已经上传成功,如下图所示:
注意:
要关联一个远程库,使用命令git remote add origin
git@github.com
:username/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改。
参考文献:
http://blog.csdn.net/helinlin007/article/details/50358633
http://www.cnblogs.com/owenChen/archive/2012/12/28/2837450.html
http://www.jianshu.com/p/31cbbbc5f9fa/
http://www.cnblogs.com/heyonggang/p/3462191.html
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000