GitHub基本使用介绍

之前公司项目一直在使用SVN作为项目代码版本控制,最近我想整理下项目中iOS端CC视频SDK封装,CC移动端SDK本身只提供视频播放信息以及播放器初始化,因此需要自定义播放器的控制逻辑。当整理好了代码准备分享时,发现还是Git才是版本控制的王道。

首先,要使用Git需要在GitHub上注册一个自己的账号

初始账号默认只能免费创建公共仓库,首先Create a New Repository

创建仓库

第二部,下载安装GitHub客户端
Mac版GitHub
Windows版GitHub
Linux版GitHub
桌面版GitHub

配置Git

以下为在Mac环境上配置Git。

想要通过本地上传代码至GitHub中,必须得有一份ssh key用于验证身份。

创建ssh key:

$ ssh-keygen -t rsa -C "example@youremail.com"

example@youremail.com修改为GitHub上注册的邮箱,之后要求确认路径和密码,三次回车即可。

$ open ~/.ssh

创建ssh文件后,进入~/.ssh文件夹,会有id_rsa和id_rsa.pub两个文件。id_rsa为私钥,自己保存好;id_rsa.pub为公钥,用于提供给他人使用。
打开id_rsa.pub后复制全部内容,在GitHub中,创建SSH时,title可随意填写,key为id_rsa.pub内的复制内容。完成后,还需要输入:

$ ssh -T git@github.com

如果是第一次会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github
此时GitHub中的ssh key左侧的钥匙图标会变为绿色。


新增ssh密钥

此外,还需要配置GitHub全局的用户名与邮箱。

$ git config --global user.name "Your Name"
$ git config --global user.email "example@youremail.com"

在GitHub创建完项目时,GitHub会提示如何创建新仓库与push已存在的仓库。
因为是将已有的项目文件第一次上传,所以,首先进入项目路径下,并创建一个README.md文件

$ touch README.md
$ git init
$ git add *
$ git commit -m "此处可添加提交代码相关的注释"
$ git remote add origin https://github.com/yourUserName/repositoryName.git
$ git push -u origin master

上述命令中,分别作用为:

  • 在项目中创建README.md文件;
  • 初始化git仓库;
  • 向git添加所在目录下的所有文件;
  • 添加提交说明;
  • 添加一个新的仓库并连接到指定的远程服务器上,https://github.com/yourUserName/repositoryName.git就是在GitHub上创建仓库的URL;
  • 推送提交项目中的改动至远程服务器,master可以修改为想要推送的任意分支,此处master为默认分支。
    此时,已经把项目上传到了GitHub指定的远程仓库中,目的完成。

工作流程
Git本地仓库实际上由三个tree组成,1.工作目录,持有实际文件 2. 暂存区,临时保存改动 3. HEAD,指向最后一次提交的结果

$ git add (文件名)

上述命令表示本地提出更改,添加至暂存区

$ git commit -m "代码注释信息"

上述命令表示改动已提交至HEAD,当改动在HEAD中时就可执行以下命令提交推送至远端仓库:

$ git push origin (指定分支名称)

克隆
创建本地仓库的克隆版本:

$ git clone /path/to/repository

创建远端服务器上的克隆版本:

$ git clone username@host:/path/to/repository

分支
创建仓库时,默认只有master分支,创建其它分支后可在分支上开发,完成后合并到主分支上。
创建名为“feature”并切换到该分支:

$ git checkout -b (分支名)

切换其它分支:

$ git checkout (分支名)

删除分支:

$ git branch -d (分支名)

更新
多人开发时,在push前一定要先更新本地仓库至最新改动,避免许多不必要的冲突:

$ git pull

合并,将指定分支合并到当前分支中:

$ git merge (指定要合并分支名)

在合并过程中,会出现Fast-forward词。出现此情况时,当前所在分支所指向的是要提交合并分支的直接上游,当试图合并两个分支时,若顺着一个分支能够到达另一分支,Git只会将指针向前推进,合并操作中没有解决的分歧。合并完成后,可以删除之前被合并的分支。
当合并遇到冲突时,查看因包含冲突而处于未合并状态的文件:

$ git status

当解决掉冲突之后,需要使用git add (指定文件)来将其标记为冲突已解决。
合并改动之前,可以用命令浏览版本差异:

$ git diff (原分支) (目标分支)

标签
将发布的版本进行标签标记:

$ git tag 1.1.1 xxxxxxxxxx

xxxxxxxxxx是要标记的提交ID,可使用以下命令获取:

$ git log

撤销本地改动

$ git checkout --(filename)

会将HEAD中的最新内容替换掉当前工作目录中的内容,已添加到暂存区的改动以及新文件不受影响
若想放弃所有改动和提交,可将远端仓库中的版本获取至本地,并将主分支指向它:

$ git fetch origin
$ git reset --hard origin/master

该文章首次发表在 简书:我只不过是出来写写代码 博客,并自动同步至 腾讯云:我只不过是出来写写iOS 博客

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