以前一直使用的是svn,如下图:

附个下载链接:链接: https://pan.baidu.com/s/1nv6z5XJ 密码: pwqe;不太熟悉的小伙伴可以参考我写的一篇本地搭建svn服务器的博客,上面的步骤亲测无误的!

最近的一个项目需要要求使用git进行管理,因为公司的ios目前就我一个人,所以正好顺便学习了下,中间踩了不少坑,现在总结出来,希望能与人方便。

在这里我所要说的有2中方法,历时1.5天,参考了文顶顶和其他简书大神的博客,亲自操作,在篇尾会附上各位大神的参考博客:

一 、使用x-code和终端配合的方法,原谅我,对经常使用的终端命令还可以,其他的真的不熟悉呀,也兴趣的朋友可以参考我自己收藏的一篇博客,上面有终端的详细操作;好了,话不多说直接上步骤:

1、 先注册一个GIthub的账号

传送门

2、 Github说白了就是个仓库,不过人家开源了,全球的人都可以免费试用Git版本管理工具,也是全球最大的第三方开源库的集散地,有句老话:我们不生产代码,我们只是Github的搬运工,,说的就是这种“情怀”

3、我们知道Github上不是随便都能传代码上去的,而是通过一种网络协议--SSH来授权的,那么这个SSH就是个什么鬼:SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台 Linux 电脑的标准配置。而大多数 Git 服务器都会选择使用 SSH 公钥来进行授权,所以想要在 GitHub 提交代码的第一步就是要先添加 SSH key 配置,

4、配置SSH

a、打开终端,直接输入命令 ssh 查看 (Mac一般都是默认安装了ssh的),如下图:

b、输入命令 ssh-keygen -t rsa ,指定rsa算法生成密钥,接着连续三次回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 是公钥,这两个文件默认是在 ~/.ssh下生成的,可在Finder中前往:如下图

点击前往,进入如下界面:

c、接着添加ssh,我们先回到Github上,按照下面的截图即可:

点击a,再点击b,选择 SSH and GPG keys 选项,会看到如下界面:(这是我上传成功后的样式)

未上传Key之前的页面如下图:

注:Title 这个东西我也没弄明白,写与不写都行,反正都能成功,我填写的是自己注册Github时的账号(我用的是QQ邮箱)

Key 这个才是重点:生成Key哩所需要的东西:

1)在终端继续输入命令 cd ~/.ssh (先输入这个),cat id_rsa.pub (再输入这个),如下图:

然后再讲终端输输出的信息(红框中的信息)复制到Key中,最后直接点击 Add SSH key 即可完成SSH配置,这样设备就有权向Github上传代码了。

这里的话,key刚上传的进去的时候,如下图,红框里面的要是是黑色的,然后我上传代码成功后,就变成绿色了,可能有延迟!

现在,咱们再打开终端,验证一下是否添加ssh成功了,输入命令: ssh -T git@github.com

如果输出successfully,则表示成功,这个比较简单,只要命令不输错,一般一次就成功了!

5、在Github上创建仓库,按照下面的步骤走即可:

注:

上图中使用红色线条框起来的地方是需要注意的,在创建仓库的时候需要对该仓库进行简单的配置,如仓库名称等等的。

  其中repositories name处需要填写的是仓库的名称。

  Description(optional) 处填写对该仓库的简单描述,就是介绍下仓库的功能,可写可不写。

接下来的两个选项(Public|private)表示你创建的仓库是公开的还是私有的,有什么区别呢,免费的就是所有人都可以无条件访问,私有的就是有偿访问了,这里选择public即可

  Initialize this repository with a README 表示在初始化仓库的时候,是否生成一个readMe文件。我们在查看别人框架的时候,在框架主页上会有对该框架版本信息,作用使用方法等等的介绍,这个文件就是readMe文件,在这里选择勾上。

  Add .gitignore按钮,点击之后会出现一个下拉框,问你是否要设置仓库的忽略文件。这个看你自己的需要,通常如果你的仓库和代码项目有关系,那么最好选择相应的忽略文件(如OC项目可以选择Object-C,swift项目可以选择Swift),至于为什么请参考GIT的基本使用。

说实话,我试了选择和不选择,没有什么影响,所以我也就没怎么理会!知道为什么的朋友,还望不吝赐教!

  Add a license按钮,点击之后会出现一个下拉框,需要你选择一种开源协议,开源协议有很多种用的比较多的有MIT的或者是Apache的,不同的开源协议对项目的使用方式等有不同的规定,详情可以参考Choose an open source license

说实话,我也试了选择和不选择,也没有什么影响,所以我也没有理会,原谅我不求甚解吧,英文看着很费劲的,补充一句:知道为什么的朋友,还望不吝赐教!

  上面的信息都设置好之后,接下来只需要轻轻点击Create respository按钮即可创建一个空的仓库。进入下图:

这里先简单介绍下这个仓库的页面信息。

  其中第1块区域是该仓库的名称,你创建仓库后别人可以通过搜索仓库名的方式找到该仓库。

  第2块区域是和仓库相关的一些信息,比如Code选项列出仓库的内容(文件),ISSues选项会列出其他人对该仓库的疑问,Pull Request选项提供其他开发者在对该仓库进行维护时请求合并的入口,Setting选项列出对该仓库可以进行的一些操作如删除等等。

  第3块区域列出该仓库的提交次数、tag版本等等。

  第4块区域列出该仓库的内容,当前仓库中只有三个文件,分别是.gitignore忽略文件,LICENSE开源协议以及初始化生成的ReadMe文件。在该区域右上角有一个clone or download按钮,点击Download Zip按钮即可把该仓库下载到本地。

  第5块区域展示ReadMe.md文件的内容。

  第6块区域列出有多少人关注该仓库,仓库的受欢迎程度,以及被fork的次数等。我们看一个框架是否受欢迎可以通过查看该仓库Star的个数以及被fork的次数。

  上面是对github自动生成空白仓库进行的简单介绍,有了这个空白的仓库之后我们才可以进行后面的操作。

6、开始导入的操作,先创建个本地库:(这里有两种方式:a 结合X-code操作;b 结合终端操作)

a、首先创建个新项目,随便创建个就行,选择箭头指的位置:

进入如下界面:

1 Address指的是你再Github上面所创建仓库的地址,如下图:

2 Type:表示使用的版本管理方式可以选择GIT和SVN,在这里只能选择Git(因为GIThub只支持git的方式来管理)

3 Authentication:表示认证的方式即验证身份的,Github提供两种验证方式,HTTPS和SSH,我们当前选择的是HTTPS的方式,所以此处选择User Name and Password.

4 User Name 和passWord两处填入github网站登录的用户名和密码即可。

  配置完成之后,点击add按钮,出现下面的窗口,则说明连接仓库成功。

接下来,打开x-code,如下图箭头指示操作:

check out的位置可以自定义,默认是在Document里面,我就是直接默认的地址,如下图:

至此,准备工作全部做完!

7、到这个步骤也是最重要的,上传代码,简单理解就是说远程关联本地仓库,本地仓库放入源代码,然后add,最后push到Github上,大体上就这个流程,具体操作如下:

a、cd到目标文件夹,就是刚才check out的文件夹,如下图:

b、然后我把要上传的项目,直接拖到目标文件夹下,输入 ls -la ,如下图:

c、如上图红框里面的所示,但是该文件默认并不会被Git版本库管理,(可以使用git status命令查看),需要使用add 命令先把指定的文件添加到git的暂缓区,然后再提交到git的版本库,如下图所示:

此时进行add操作,add过后,上图红框中的文件会变成绿色,如下图:

提交到本地仓库,添加一些注释:

最后,git push 一下,提交到Github服务器,如出现下图所示,则表示成功:

此时刷新你的Github主页,你会发现,刚刚上传的项目源代码:

到这,就结束了!

8、修改文件,并把修改操作提交到远程仓库。

我现在在Test项目里面给vc添加了一个背景颜色,需要重新提交,然后把修改提交到git暂缓区,提交到本地的git版本库之后,再推送到远程的仓库。操作步骤如下,照着步骤走就可以:

继续:

git add   .命令表示添加多个文件;

最后,是添加描述和推送的操作,如下图:

最后,再来个Github主页展示的:

命令说明:

  $ ls -l 以列表的方式显示当前目录下面的文件(NewFile文件为刚刚创建的)

  $ git status 查看git仓库文件状态 (新文件状态为红色,表示未被git管理)

  $ git add 新文件 把新文件添加到git的暂缓区中(如果需要一次性提交多个文件,那么可以使用git add .命令)

  $ git status 重新查看状态(此时新文件状态为绿色,表示更改已经提交到了暂缓区)

  $ git commit -m "创建了新文件"  新文件 表示把暂缓区中新文件文件对应的更改提交到本地的git版本库(如果要一次性提交所有的更改,那么可以直接把具体的文件省略即可)

$ git push  推送到远程仓库的操作

9、其他操作(tag标记)

如果你的项目已经完成了阶段性开发,那么可以确定为一个新的版本,比如说发布为正式的1.0版本,而后续可能接着发布1.1.0或者是2.0版本等等,那么使用github托管的项目如何确定为一个新的版本呢?或者是如何进行tag标记。

如果没有发布新版本,那么release出显示为0,如下图:

假设当前的项目已经完成了阶段性的开发,需要正式确定为Test1.0版本,那么应该如何处理?如下图所示:

上面的命令行~

  (1)先使用git tag指令查看当前被打上tag标签的版本,最开始的时候无

  (2)然后把当前的仓库打上tag标签,为Test1.0版本,并添加注释

  (3)再使用git tag指令查看,即可以发现有Test1.0版本

确定了新版本之后,还需要把标签推送到远程服务器,命令行为git push origin 标签名,具体操作如下图所示:

如出现上图所示,则表示设置版本成功;

最后来张主页的图,如下:

点击release,进去看到如下界面:

相关总结

1、要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;关联后,使用命令git push -u origin master第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

2、切记上传文件时,一定要先commit到本地仓库,才能进行push提交,否则会显示Everything up-to-date(意思就是目前的远程仓库的内容跟本地仓库对比后,没有做修改,是最新的);

3、初用Mac的童鞋可能还不知道终端在哪里,点击Finder旁边的Launchpad,在“其他”文件夹下。

4、在设置别名的时候,出现“fatal: remote
origin already exists.”错误,说明该别名已经存在,可以另外建一个别名,或者使用“git remote rm
origin”命令删除原来的别名,然后重新执行“git remote add origin
git@github.com:yourname/xxxx.git”;

5、在提交的时候,出现“error: failed to
push some refs to 'git@github.com:xxx/xxx.git' hint: Updates were
rejected because the remote contains work that you do not have
locally....”的错误,说明有冲突,远程仓库的版本比本地仓库的要信,所以要先进行更新,才能提交。使用“git
pull git@github.com:xxx/xxx.git”命令进行更新,地址自己相应替换掉。

这是相关问题的一些总结!亲测有效,希望能帮到大家!

参考资料:顶顶大神http://www.cnblogs.com/wendingding/p/5584310.html

http://blog.csdn.net/yyh352091626/article/details/50714880

http://www.jianshu.com/p/5d2374ee0242

git操作大全:  https://git-scm.com/book/zh/v2

参考着大神们写的博客,一步一步自己尝试着,知道自己成功了几次,再花了几个小时的时间,把这些经验记录下来,方便自己,也希望能方便到他人!写的过程中,确实遇到很多的坑,不过好在最后都解决了!

Mac下,如何把项目托管到github的更多相关文章

  1. iOS开发拓展篇——如何把项目托管到GitHub

    iOS开发拓展篇——如何把项目托管到GitHub 说明:本文主要介绍如何把一个OC项目托管到Github,重操作轻理论. 第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注 ...

  2. vs2012快速将项目托管到github

    vs2012快速将项目托管到github   在VS2012中使用GitHub 注册GitHub账号(DeanZhouLin) https://github.com/ 向GitHub中添加一个仓库(T ...

  3. Hexo快速构建个人小站-Hexo初始化和将项目托管在Github(一)

    背景交代 相信每个程序员都有自己做过个人网站,博客之类的项目了,但是现在还在维护吗?反正我前前后后做过2到3个了,维护一段时间后因为一些不可逆的原因(主要是懒)都没有维护了,购买的一些域名和服务器信息 ...

  4. Mac下,如何把项目托管到Github上(Github Desktop的使用)

    在上一篇中,详细讲解了使用X-code和终端配合上传代码的方法,这种方法比较传统,中间会有坑,英文看起来也费劲,不过Github官方提供了一个Mac版的客户端,如下图:

  5. 将项目托管到GitHub实现步骤

    修改于:2017.1.14 第一步:先注册一个Github的账号 注册地址:Github官网注册入口 第二步:准备工作 gitHub网站使用Git版本管理工具来对仓库进行管理,但是它们并不等同. gi ...

  6. 如何把项目托管到GitHub

    第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注册入口 第二步:准备工作 gitHub网站使用Git版本管理工具来对仓库进行管理,注意它们并不等同. gitHub是全球最 ...

  7. 本地项目托管到github上

    一,步骤 1.在github上新建一个仓库 2.进入我的项目目录, git init //初始化本地仓库 3.git add . //把修改的代码提交到暂存区 4.git status 该命令会把你本 ...

  8. 将maven项目托管到github

    1.下载安装git 并通过 git config --global user.name "",和git config --global user.email "" ...

  9. 将本地项目托管到github 并预览

    本地文件上传到github的步骤 1.先在github上建立一个仓库 2.将此仓库download 3.在此文件夹中git bash here 4.进行如下git操作 git git init git ...

随机推荐

  1. Flask CBV

    from flask import Flask, views import time app = Flask(__name__) def zhuangshiqi(func): def inner(*a ...

  2. pngcrush caught libpng error原因及解决方法

    报错信息: While reading /Users/zhangyanfeng/Desktop/程序/KeyBoardDemo/KeyBoardDemo/keyboard/KerboardResour ...

  3. 深入理解JVM(1)——JVM内存模型

    Java虚拟机的内存空间分为五个部分,分别是: 程序计数器: Java虚拟机栈 本地方法栈 堆 方法区 接下来对这五部分分别进行详细的介绍 1.程序计数器: a)什么是程序计数器:程序计数器是内存中的 ...

  4. 通过DCGAN进行生成花朵

    环境是你要安装Keras和Tensorflow 先来个network.py,里面定义了生成器网络和鉴别器网络: # -*- coding: UTF-8 -*- """ D ...

  5. 并查集---java模板

    并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中.这一类问题近几年来反复出 ...

  6. startup 环境搭配

    1.登入下载网址 www.apache.org 选择  Tomcat 3. 解压后的 4. 关闭了就可以互相访问了 在浏览器上也可以的访问的直接http://然后你的ID号就OK了

  7. Nanopi2基本使用

    1.首先刷系统,把TF卡放到读卡器中,根据官网教程(http://www.arm9.net/nanopi-m2.asp)下载固件,并烧写.   2.硬件连接:把TF卡插到Nanopi2的boot卡槽, ...

  8. Office Web Apps 2013 修改Excel在线查看文件大小限制

    前言 最近搭建了一个OWA 2013环境,帮客户实现在线查看Excel文档,不过,使用过程中出现了错误,文件大小超过10MB就无法预览了,查了好久,发现需要使用PowerShell命令进行修改. 1. ...

  9. Centos PHP+Apache执行exec()等Linux脚本权限设置的详细步骤

    1. 查看一下你的Apache的执行用户是谁: lsof -i:80         运行之后的结果为: 从图中我们可以清楚的看到,httpd(也就是Apache)的执行用户为:exec_shell( ...

  10. InfluxDB添加新服务

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 这里以添加 syncd 服务为例记录下InfluxDB添加新服务 ...