【7】版本管理神器——Git指令

本文是《程序猿叨叨叨》系列文章中的其中一篇,想要了解更多相关的文章,欢迎猛戳蓝字前往阅读。

在前面几篇中,笔者曾多次和大家提到过Github网站,作为全球最大的同性交友网站,想必,各位小伙伴们也是迫不及待地在这个网站上找到自己的知己。如同在百合网相亲一样,我们需要上传自己的个人信息供其他人了解,在Github上,代码就是我们的名片。今天在Level 6的修炼道路上,我们来学习一下常用的git指令。

Git常用命令速查表

这张表包含了大部分我们上传项目代码时用到的命令,但是毫无头绪地查看这张表,对于我们未接触过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指令的简单操作,感谢大家的阅读!

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,464评论 25 707
  • 带着六月的鲜花,披着六月的阳光,六一的脚步近了,这天属于我们的孩子,在这个快乐的日子里,所有的小朋友都在积极准备,...
    陈留张小学幼儿园阅读 1,039评论 0 1
  • 难得老王有了兴致陪我去看冰瀑,却不巧出门便被铺天盖地的雾霾给震住了,的确,这样的天气是不适合户外活动的。给组织者东...
    子玉央阅读 359评论 2 1
  • 最近: 1.正在经历人生中的,至少是目前人生中,最孤独的时光。无人可诉,更无话可说,下载的电台有几个了,但是总觉得...
    十柳阅读 103评论 0 0
  • 每年的春末夏初之际,人们总能听见天空传来声声酷似"天落水——天落水——”的鸟叫声。 小的时候,每当听得这穿透长空的...
    花不拾阅读 3,279评论 0 1