zoukankan      html  css  js  c++  java
  • Mac下,如何把项目托管到github

    以前一直使用的是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

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

  • 相关阅读:
    N层电梯只停一层情况下,求所有人爬楼层数最少
    小组开发用户调研
    《哈利波特》买书最优惠算法
    团队开发——极速蜗牛
    林锐——软件工程思想后两章阅读笔记
    课堂练习之检测水军
    团队开发项目-----来用------典型用户与用户场景分析
    体验结对开发的乐趣(6)--(电梯调度问题)
    团队开发项目-----来用------用户需求调研报告
    课堂练习之最高折扣,最低优惠规划
  • 原文地址:https://www.cnblogs.com/hero11223/p/7327083.html
Copyright © 2011-2022 走看看