前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub基本使用介绍

GitHub基本使用介绍

作者头像
我只不过是出来写写代码
发布2019-04-02 15:02:05
1K0
发布2019-04-02 15:02:05
举报

之前公司项目一直在使用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:

代码语言:javascript
复制
$ ssh-keygen -t rsa -C "example@youremail.com"

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

代码语言:javascript
复制
$ open ~/.ssh

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

代码语言:javascript
复制
$ ssl -T git@github.com

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

新增ssh密钥

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

代码语言:javascript
复制
$ git config --global user.name "Your Name"
$ git config --global user.email "example@youremail.com"

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

代码语言:javascript
复制
$ 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,指向最后一次提交的结果

代码语言:javascript
复制
$ git add (文件名)

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

代码语言:javascript
复制
$ git commit -m "代码注释信息"

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

代码语言:javascript
复制
$ git push origin (指定分支名称)

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

代码语言:javascript
复制
$ git clone /path/to/repository

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

代码语言:javascript
复制
$ git clone username@host:/path/to/repository

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

代码语言:javascript
复制
$ git checkout -b (分支名)

切换其它分支:

代码语言:javascript
复制
$ git checkout (分支名)

删除分支:

代码语言:javascript
复制
$ git branch -d (分支名)

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

代码语言:javascript
复制
$ git pull

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

代码语言:javascript
复制
$ git merge (指定要合并分支名)

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

代码语言:javascript
复制
$ git status

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

代码语言:javascript
复制
$ git diff (原分支) (目标分支)

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

代码语言:javascript
复制
$ git tag 1.1.1 xxxxxxxxxx

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

代码语言:javascript
复制
$ git log

撤销本地改动

代码语言:javascript
复制
$ git checkout --(filename)

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

代码语言:javascript
复制
$ git fetch origin
$ git reset --hard origin/master
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.05.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档