首先简单介绍一下Git和Github

集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )。这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

分布式版本控制系统( Distributed Version Control System,简称 DVCS )。在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

GitHub是一个用于使用Git版本控制系统的项目的基于互联网的存取服务。它是由GitHub公司(先前被称作用Logical Awesome)的开发者Chris Wanstrath, PJ Hyett, 和 Tom Preston-Werner 使用Ruby on Rails写成的。GitHub同时提供商业账户和为开源项目提供的免费账户。根据在2009年的Git用户调查,GitHub是最流行的Git存取站点。

它提供了像 feeds,followers 和显示开发者们怎样在他们的版本库的版本上工作的网络图表。简单来说,git是一个版本控制工具,github是一个用git做版本控制的项目托管平台。

现在介绍下详细步骤:

1、git安装

这里介绍图形化安装方式,下载地址(http://git-scm.com/download

下载后打开.dmg,双击.pkg文件即可完成安装。

终端下可用which git(查看git的安装目录)和git --version(查看git的安装版本)测试是否安装成功。

如果显示  /usr/bin/git   或者    git version 2.3.2 (Apple Git-55) 说明安装成功。

2、git本地仓库使用

   1)cd到你本地的工程根目录

   2)$git init 初始git使用环境,当前目录下会创建一个.git目录。


 我这是之前init过了,所以会提示reinit。

   3)$ git add . 添加当前目录的所有文件到版本库,把文件添加到git本地管理目录中,这类似Svn的add操作,实际上,还没有提交到本地管理仓库,通过$ git status可以查看状态

   4)git commit -m '你的注释说明' 这样就把文件提交到本地仓库

 当然,你可以再运行$ git status,看一下,还有没有没提交的代码。现在本地仓库的提交已完成,下节会讲到如何把本地仓库和远程Github仓库相关联。

3、git远程仓库使用

    先注册github账号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要一点设置:

 1)创建SSH Key

       1、在用户主目录下,看看有没有.ssh目录 

$ cd ~/.ssh

       2、如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,则直接跳过下面一步

$ ls

        3、如果没有的话,打开命令行,输入如下命令:

$ ssh -keygen -t rsa –C “xxxx@email.com”

这里的xxxx@email.com就是你注册github时的邮箱地址,比如我的是 645880027@qq.com

 然后一直回车

如果要修改ssh生成目录,在粗体位置处输入要生成的路径,选择默认的话,会生成在 ~/.ssh下

 2)在github上添加ssh

1、登陆github,选择Account Settings-->SSH  Keys 添加ssh

        Title:xxxxx@gmail.com

        Key:打开你生成的id_rsa.pub文件,将其中内容拷贝至此

找不到id_rsa.pub的话就将你刚才的位置,也就是/Users/tangaofeng/.ssh/id_rsa.pub,通过文本编辑器打开id_rsa.pub

      2、打开终端,先测试一下你的帐号跟github连上没有:

$ ssh -T git@github.com


       如果出现如下提示,表示你连已经连上了.(因为有了第一步,所以不用自己做过多的连接github的操作了,另外,下一次要连接github的时候记得打开第一步的工具).    


       Hi gaofengtan! You've successfully authenticated, but GitHub does not provide shell access.


3)接下来就可以上传你的代码了,在github下建自己的Repository。添加一个远程库Repository name你自己建的工程的名字  


Repository name:你自己建的工程的名字

Description:对你上传工程的一个简单的描述

Public选择的是所有人都可见 

Private:可以设置你指定的人可见

 这里我们一般选择的就是Public,根据自己需要你可以选择Private

下面的Initialize this repository with a README: 就是给你的工程初始化一个README(工程的用法简介之类的)的一个文件,这里我们不选,到后面自己创建。

 然后点击Create repository到下个界面


4、关联本地仓库

目前,在GitHub上的这个test仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

    1)连接远程仓库并建了一个名叫:origin的别 

        $ git remote add origin https://github.com/gaofengtan/CABasicAnimation.git

    2)将本地仓库的东西提交到地址是origin的地址,master分支下

        $ git push -u origin master

  到这里,整个工程就添加上去了,刷新一下github的页面,如下图,说明成功了

5、更新你的github工程

 用github客户端来做这件事将是一件非常简单的事情

1)首先下载github客户端,点击github右下角的Clone in Desktop

2)下载完成后安装,安装好之后点击左上角的+


3)选择你在github上已有的项目,clone到桌面

    4)然后我向里面添加一张图片

5)然后看看我的github客户端点击changes,就会发现新增了一个图片,然后填上描述(比如我这里写的是second commit和add picture)提交


6)然后就如图点击History就可以看到你的历史提交记录,这里我们会发现我刚才提交的也就是second commit后面有一个圆圈,这个的意思就是还没有同步到github上去,点击右上角的Sync,就可以同步了,这一步不要忘记,不然你在github上看不到你的更新,如图


     7)然后刷新我们的工程主页,就可以看到提交的更新了   

疑难问题分析和解决


1、如果输入$ git remote add origingit@github.com:djqiang(github帐号名)/gitdemo(项目名).git

提示出错信息:fatal: remote origin already exists.

    解决办法如下:

    1、先输入$ git remote rm origin

2、再输入$ git remote add origingit@github.com:djqiang/gitdemo.git就不会报错了!

    3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

    4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

2、如果输入$ ssh -Tgit@github.com

 出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

    解决办法如下:

    1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

    2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

    3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

3、如果输入$ git push origin master

 提示出错信息:error:failed to push som refs to .......

    解决办法如下:

    1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来

    2、再输入$ git push origin master

    3、如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.

4、则需要重新输入$ git remote add origingit@github.com:djqiang/gitdemo.git


到这里,代码就托管到github上了!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,661评论 9 163
  • 什么是git版本管理控制工具(vcs) 1.分布式版本控制 2.多个开发人员协调工作 3.有效监听谁做的修改 4....
    Daryl_Z阅读 650评论 1 2
  • 安装Git Git的下载地址:Git官网下载地址 Git本地仓库和命令 配置用户 下载完Git后,右键会有一个Gi...
    TokyoZ阅读 4,502评论 1 7
  • 1.在GitHub上建立项目 登录GitHub后,你可以在右边靠中那里找到一个按钮“New Repository”...
    怪兽别跑biubiubi阅读 4,036评论 0 3
  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 3,955评论 3 27