美文网首页Des's iOS 苹果产品之美Macbook,iphone,ios 及其他IT相关
【Mac流派】程序猿修炼之道(6)-技能篇之git指令

【Mac流派】程序猿修炼之道(6)-技能篇之git指令

作者: 代码咖啡 | 来源:发表于2016-11-02 17:41 被阅读1074次

    我叫程序猿,于公元2013年9月1日被一股洪荒之力推入一个名叫挨踢圈的巨坑,从此开始了我的程序猿修炼之道。在前面几篇中,本猿曾多次和大家提到过Github网站,作为全球最大的同性交友网站,想必,各位猿猿们也是迫不及待地在这个网站上找到自己的知己。如同在百合网相亲一样,我们需要上传自己的个人信息供其他人了解,在Github上,代码就是我们的名片。今天在Level 6的修炼道路上,我们来学习一下常用的git指令。

    Git常用命令速查表

    图片盗自简书用户[*HalShaw*](http://www.jianshu.com/users/1d69810aa9f0)

    这张表包含了大部分我们上传项目代码时用到的命令,但是毫无头绪地查看这张表,对于我们未接触过Git的猿猿们来说肯定是无从下手的,所以我们按照上传一个项目的流程过一下我们使用的Git命令。

    上传代码流程

    • 注册Github账号
      注册Github账号

    点击这里进行账号的注册,注册过程在此不做过多讲解,各位猿猿们按照套路来即可。

    • 新建Github仓库

      新建Github仓库
      这里的仓库指的就是Github网站上存放代码的地方,点击这里新建我们的项目,按套路填写项目的相关信息,这里提一点:
      新建项目时有一个Initialize this repository with a README选项,如果勾选,会在新建项目过程中生成一个README.md的文件,md指的是Markdown文件,其作用是对我们的项目进行描述,以比较有名的ButterKnife为例,我们看到的下图内容,就是通过README.md文件实现的,它出现在项目根目录中,方便他人对我们的项目进行了解。
      QQ20161102-2.png
      新建完毕后,若出现如下图所示,则我们新建项目完毕,我们可以看到我们的远程(即Github项目网站上的,下同)项目文件结构:
      Github项目结构
    • 配置Git命令环境
      Git命令需要在对应的环境下才能使用,本节我们来下载配置Git命令环境,点击这里进入Git下载页面进行下载:

      git下载页面
      下载安装按套路一步一步来,安装完毕后,Git命令环境也就搭建完成了。
    • 上传本地工程代码
      本猿开发安卓,所以上传的代码以安卓工程为例,打开命令行,进入项目根目录,开始如下操作:

    // 进入项目根目录,当前项目名为Mitu,本地项目名和远程仓库的命长可以不一致
    cd /Volumes/J_Eric/J_workRoom/AndroidStudio/MiTu
    // 初始化本地项目的git,会在当前目录下生成一个.git文件夹,所有的git配置都在其中
    git init
    // 建立远程连接,项目连接可在Github相应目录下得到,如下图
    git remote add origin https://github.com/inerdstack/MyFirstProject.git
    // 添加账户信息:账户名
    git config user.name "inerdstack"
    // 添加账户信息:绑定的邮箱
    git config user.email "wjnovember@gmail.com"
    // 添加本地项目文件(夹子),"."或"-A"表示添加所有文件
    // 若添加个别文件,可以输入文件路径,多个文件之间以空格隔开
    git add .
    // 添加本次提交描述
    git commit -m "我的第一次提交"
    // 因为我们远程新建项目的时候,自动生成了README.md的文件
    // 所以我们需要将远程的文件先拉到本地,与本地文件进行合并比较
    // master表示项目的分支,默认主分支(master)
    git pull origin master
    // 拉到本地后,进行核查,如果文件不存在冲突,则进行上传,将本地项目推上去
    git push origin master
    
    得到远程链接

    至此,我们项目上传完毕,可以在Github网站上看到工程文件:

    远程代码

    上面我们讲解的是HTTPS的上传方式,除此之外,我们还可以使用SSH的方式上传,与HTTPS基本类似,其区别有以下两点:

    1.在git push命令前添加项目的deploy key:

    Add deploy key

    在Terminal中输入:

    // 生成key
    ssh-keygen -t rsa -C "Github的注册邮箱地址"
    // 打开key文件所在的文件夹,默认路径:~/.ssh
    open ~/.ssh
    
    .ssh文件

    打开id_rsa.pub文件,复制所有内容,进入Github仓库里的Deploy key设置页面,点击Add deploy key,在key项粘贴复制的内容,输入好标题(随意输入)点击Add key完成key的添加。

    2.git remote add origin链接改为:

    SSH

    创建分支

    在实际开发中,开发者会把上线的代码和平时写的代码区分开,这时候需要创建一个分支(注意与默认的主分支master区别开),上线的代码放到主分支上,平时的代码每完成一个模块就会放到新建的分支上。

    创建分支分两部分:

    1. 远程创建分支

    远程创建分支

    在远程的项目仓库中,点击branch,在输入框输入新分支的名称,按回车键完成远程分支的创建,新建的分支,其文件目录与创建时master的文件目录一样。

    2. 本地创建分支并上传

    打开Terminal,在本地项目根目录下,实现如下操作:

    // 创建一个新的分支
    git checkout -b "debug"
    // 拉分支上的代码到本地,实现代码同步
    git pull origin debug
    // 推本地的代码到远程的分支
    git push origin debug
    

    克隆工程

    当工程项目上传Github后,需要在另一台设备上得到项目代码,这时候我们可以使用克隆将远程的代码拿到本地,Terminal命令如下:

    // 将远程的仓库克隆到本地
    git clone https://github.com/inerdstack/MyFirstProject.git
    // 若想远程克隆分支上的代码,则添加-b 分支名
    git clone -b debug https://github.com/inerdstack/MyFirstProject.git
    

    这里注意一下克隆过来的工程文件夹里面是不包含.git文件的,所以克隆过来的项目若要上传Github需要重新按项目上传流程走一遍。

    分支合并

    当项目上线时,次分支上的代码会同步到主分支上,我们会用到分支的合并,打开命令行,进行如下操作:

    // 将当前分值切换到主分支
    git checkout master
    // 将次分支的文件合并到主分支
    git merge origin/debug
    

    本猿使用上述指令合并了分支,但Github上的仓库依然未显示分支合并,debug分支上的文件未同步到主分支,对此表示不解,若各位猿猿们知晓其中的错误,欢迎指正。对于分支的新建与合并,想要了解更多可点击这里

    以上即常用git指令的简单操作,感谢大家的阅读!

    上一篇
    【Mac流派】程序猿修炼之道(5)-生存高阶篇
    下一篇
    如何写出一篇登得上大雅之堂的技术博客

    相关文章

      网友评论

      • snowimba:如果是新手我劝去下个sourcetree
        Mooner_guo:@snowimba 新手应该更多的建议用命令行,sourcetree我觉得更多的用来直观看分支合并等好一点,熟练掌握git命令才能更好理解git代码管理
      • 棍武中原:楼主写的不错,还有更详细的么
        代码咖啡: @棍武中原 git多人开发也是用文章中的指令就够了的,主要是用git pull指令,把他人提交的代码和自己本地的合并,合并后检查解决冲突后再用git push命令把自己和他人合并后的代码推到远程仓库
        棍武中原:@inerdstack 那楼主还能写点其他的么??比如git多人开发的
        代码咖啡:@棍武中原 能力有限哦 平时常用的就这几个了,其他的还没有接触过哦
      • 2ca8523e79f3::smile:
        代码咖啡:@瞎看什么 :smile:

      本文标题:【Mac流派】程序猿修炼之道(6)-技能篇之git指令

      本文链接:https://www.haomeiwen.com/subject/xhsxyttx.html