Git和GitHub使用教程

GitGitHub我就不进行详细介绍了(自行百度),主要记录搭建和使用的过程。

Git环境搭建

下载Git

可以去Git官网下载自己操作系统的Git,但是Git是命令行操作的使用起来不太方便,可以安装些带有GUI界面的:SourceTreeGitHub Desktop。但是如果初学还是在命令行中操作熟悉命令比较好。

设置Git

先要设置自己的身份,就是提交时其他人看到的名字。

windows打开Git Bashmacoslinux直接打开终端,输入:

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

需要设置的内容有两条,一个是你的称呼,另一个是你的邮箱 。

Git的使用

Git官方文档

跟踪新文件

打开终端(cmd/shell),创建一个文件夹 mkdir gittest,进入刚创建的文件夹 cd gittest,初始化仓库 git init,初始化仓库后路径下会生成一个隐藏文件夹 .git,在路径下创建一个 hello.txt,在里面随便写点东西。

然后就可以使用git命令来进行版本控制了。使用 git add 开始跟踪 hello.txt 文件:

$ git add hello.txt

再运行 git status 命令,会看到 hello.txt 文件已被跟踪,并处于暂存状态:

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   hello.txt

提交文件

现在就可以将暂存区的文件进行提交了:

$ git commit -m "添加了hello.txt"

提交时在 commit 命令后添加 -m 选项里面的内容是本次提交的说明。

[master (root-commit) 79e27aa] 添加了hello.txt
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

完成后会有上面的提示,提示一个文件被修改。在 hello.txt 再添加一行新内容练习一下上面方法,如果想跳过使用暂存区( git add ),在 git commit 加上 -a 选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交。

回滚

那现在我们有2次提交了,如果想回到第一次的文件怎么办呢,可以使用 git reset 命令:

```sh j $ git reset –hard HEAD^


`HEAD^`表示上一个版本,`HEAD^^`表示上上一个版本。

再来点复杂的,使用 `git log` 查看信息

```shell
$ git log                        
commit 0daae5813a75c655155d76fdde5757fd725ea959 (HEAD -> master)
Author: Hypo <zhb_hypo@163.com>
Date:   Tue Jun 2 14:45:06 2020 +0800

    nihao

commit 79e27aa04272e8b757a22c6508166e594c9a94e4
Author: Hypo <zhb_hypo@163.com>
Date:   Tue Jun 2 11:47:18 2020 +0800

    添加了hello.txt

每次提交都会有一个 commit id 这个就是每个版本的版本号我们可以使用这个id来回到任意一个版本,版本号不需要写全,前几位就可以了,会自动去找到对应的版本。

$ git reset --hard 79e27aa0

移除文件

那要从Git中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。用 git rm 命令完成此项工作:

$ git rm hello.txt

并从工作目录中手动删除文件, 这样就不会出现在未跟踪文件清单中了。

GitHub的使用

GitHub是一个云端的托管平台,上面有许多开源项目。官方文档

注册账号

先注册一个账号GitHub官网

克隆仓库

随便选择一个仓库克隆下:https://github.com/spmallick/learnopencv

$ git clone git@github.com:spmallick/learnopencv.git

等待一会儿仓库就克隆好了。十分的方便。

创建自己的GitHub仓库

先创建SSH Key

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

邮件地址换成你自己的邮件地址,在用户主目录下会生成一个 .ssh 文件夹,文件夹里面有 id_rsaid_rsa.pub 两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。

GitHub 需要使用 SSH Key 来识别这次提交的身份,如果有若干台电脑需要把每台电脑的key都添加到GitHub

打开id_rsa.pub ,复制里面的内容。

登陆GitHub,打开 settings->SSH Keys and GPG keys->New SSH key,在Key文本框里粘贴复制的内容即可(传送门)。

创建自己的仓库,右上角‘+’->New repository传送门)。

repo-create

填写仓库名和描述,仓库是公开的还是私有的,进行一些简单选择后点击 Create repository 。创建就完成了。现在就只要把我们本地的代码与云端的关联起来就可以了。

还是进入之前已经创建好的 gittest 文件夹执行

$ git remote add origin git@github.com:YourName/Gittest.git

完成后远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

$ git push -u origin master

我们第一次推送master分支时,加上了-u参数,会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来。