mac环境通过git上传代码至github

最近打算把自己用sublime text2写的一些小项目通过git传到github上,但是,发现网上介绍的,大部分都是windows环境下的。这篇主要是介绍在mac环境下如何配置git 和github的集成。


一、安装git

    1.下载git客户端程序,地址为:https://git-scm.com/download/mac。即可以下载到最新的客户端程序,我安装的是git2.8.1,目前最新版本。

   2.打开安装包,可以看到此时的界面为:


我们需要把.pkg的安装包安装到系统当中。我双击了安装包之后,结果无法安装成功。界面为:

mac环境通过git上传代码至github_第1张图片


这里是一个坑,虽然是很简单的问题的,网上很多解决方式,由于这个需要权限,所以直接点击安装是无法成功的。方式是右击该软件,点击打开,会弹出安装程序的界面如下:

mac环境通过git上传代码至github_第2张图片

所示。然后选择打开,就可以完成安装了。

安装完成界面如下图所示:

mac环境通过git上传代码至github_第3张图片

通过命令行可以查看git 版本,git --version,如下图所示:


二、创建SSH 连接github

打开终端,输入$cd ~/.ssh,进入该目录下,然后创建ssh秘钥,用作github验证。命令为

$ssh-keygen -t rsa -C [email protected],我用的是163邮箱注册的(github注册邮箱)。
将生成的id_rsa.pub文件打开,拷贝其中的公钥内容,在github上进行粘贴。即可创建和github的ssh链接。
mac环境通过git上传代码至github_第4张图片

这里的Overwrite是因为之前我生成过ssh,所以,会提示是否覆盖

注意:

程序会提示您输入密钥的文件名,比如输入github,不输入默认为id,按回车即可。

会要求你输入一个密码,将来在使用密钥的时候需要提供这个密码。可以输入,也可以不输入直接回车(无论输入还是不输入,都会要求你确认一次)。

确认完毕后,程序将生成一对密钥存放在以下文件夹:

/users/用户/.ssh/

密钥分成两个文件,一个私钥(id_rsa)、一个公钥(id_rsa.pub)。
私钥保存在您的电脑上,公钥交项目负责人添加到服务器上。用户必须拥有与服务器公钥所配对的私钥,才能访问服务器上的代码库。

【注意!】为了项目代码的安全,请妥善保管你的私钥!因为一旦私钥外泄,将可能导致服务器上的代码被泄漏!

接着,将生成的id_rsa.pub文件打开,拷贝其中的公钥内容,再github上进行粘贴。即可创建和github的ssh链接。
mac 下使用如下命令,将公钥的内容复制到内存里。
pbcopy < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard
然后,打开github,点击【Settings】,选择 【SSH and GPG Keys】,点击【NEW SSH KEY】,将黏贴的内容复制到key,title可以根据自己情况填写。
如下图所示:
 
点击【Add SSH KEY】,完成添加SSH功能。 最后,可以进行测试,输入ssh -T [email protected],如果连接成功,会提示如下信息:
 
接下来就可以上传你的代码了,在github下建自己的Repository。Create a New Repository如下: 
mac环境通过git上传代码至github_第5张图片 

   
   
   
   
  • Repository name:创建的工程名。
  • Description:对工程的描述。
  • 选择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 <foler>/* 或者 git add *),把文件添加到仓库,

使用命令git add <file>,注意,可反复多次使用,添加多个文件,执行git add *,没有任何提示,如下图所示,执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

mac环境通过git上传代码至github_第6张图片

第二步,用命令git commit告诉Git,把文件提交到仓库,如下图所示,表示commit成功。

mac环境通过git上传代码至github_第7张图片

第三步,添加远程库,目前,在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 [email protected]: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远程库,可以看到代码已经上传成功,如下图所示:

mac环境通过git上传代码至github_第8张图片

注意:

要关联一个远程库,使用命令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

你可能感兴趣的:(github,mac,git)