Git&Github简单使用手册

Git&Github简单使用手册

0 说明

下面的所有操作对于Windows 10系统是绝对可行的。其他版本的系统可能有差异,请仅作为参考。

1 Git

1.1 介绍

Git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。Git 与常用的版本控制工具CVSSubversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

1.2 安装

使用Git,首先需要下载。整个安装流程按照默认设置即可。

安装完后会多出来这三个东西,分别是:

  • Git GUIGit的可视化操作页面。
  • Git CMDWindows风格的命令行,可用Windows的命令。
  • Git BashLinux风格的命令行,可用WindowsLinux的命令。

下面先用Git Bash进行配置,后面的指令全都在Git Bash上执行。

1.3 配置用户名和邮箱

打开Git Bash,输入下列代码:

$ git config --global user.name "your username"    //输入用户名
$ git config --global user.email name@example.com    //输入邮箱
//$是Linux系统的命令行提示符

如果用了--global选项,那么更改的配置文件就是位于你用户(系统用户!)主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

如果要在某个特定的项目中使用其他名字或者电邮,只要去掉--global选项重新配置即可,新的设定保存在当前项目的.git/config文件里。

1.4 Git工作流程

在真正使用前,你有必要了解下Git工作流程,一般工作流程如下:

  1. 克隆Git资源作为工作目录。

  2. 在克隆的资源上添加或修改文件。

  3. 如果其他人修改了,你可以更新资源。

  4. 在提交前查看修改。

  5. 提交修改。

  6. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

09-02

2 Github

2.1 介绍

如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。

GitHub是通过Git进行版本控制的软件源代码托管服务平台,由GitHub公司的开发者Chris Wanstrath,PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

2.2 创建代码仓库

注册了一个新的Github账号后,在主页可以看到创建Repository的选项。创建时请勾选Initialize this repository with a README的勾选框。创建了一个新的Repository后,就可以开始正式的工作了。

3 Git管理Github仓库

3.1 克隆代码仓库

我们使用指令git clone从现有Github仓库中拷贝内容:

$ git clone [repo]    //拷贝到当前目录下
$ git clone [repo] [directory]    //拷贝到指定目录下

其中[repo]是要拷贝的仓库的页面地址,[directory]是指定的目录。

3.2 远程仓库连接

要连接一个新的远程仓库,需要输入下列指令:

$ git remote add [shortname] [url]

其中[shortname]是你为要连接的仓库起的一个简便名字,以后配置都要用到,[url]是你连接的仓库页面地址。

到这里并没有结束,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息,使用以下命令生成 SSH Key:

$ ssh-keygen -t rsa -C "name@example.com"    //输入邮箱

之后会要求确认路径和输入密码,请自行设置。设置完后如果看到一个由字符组成的图形就表示设置成功了。然后需要复制生成的key。key保存在is_rsa.pub文件中。怎么找到该文件?例如我的windows 10用户名是waltz26,则我可在C:\Users\waltz26\.ssh中找到该文件。

回到Github上,进入Account->Settings(账户配置)。左边选择SSH and GPG keys,然后点击New SSH key按钮,title设置标题,可以随便填,然后在下一栏粘贴在你电脑上生成的 key。然后来验证以下,输入代码:

$ ssh -T git@github.com

如果是第一次的会提示是否continue,输入yes就会看到:"You've successfully authenticated, but GitHub does not provide shell access"。这就表示已成功连上Github

3.3 工作流

我们先来理解下Git 工作区、暂存区和版本库概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件夹(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

09-03

3.4 Git GUI与操作

接下来就可以用Git GUI来管理仓库了。打开Git GUI。选择你所克隆仓库的文件夹的路径。

09-04

这里只谈谈如何使用Git GUI来管理仓库,其他功能不介绍。左边两个大框表示的是:

  • Unstaged Changes显示的是你当前文件夹的文件改动,所有被改动过的该文件夹下的文件都会显示在这里。
  • Stage Changes(Will Commit)显示的已准备好改动的文件。

右下角的一个方框显示的是:

  • Rescan:重新扫描改动。
  • Stage Changed:将文件设为准备好改动。
  • Sign Changed:在改动的commit message中添加签名。
  • Commit:将准备好改动的文件放入暂存区,准备好推送到Github
  • Push:推送到Github
  • Commit Message:提交的信息。

一个文件上传到仓库需要先将其放到克隆仓库的文件夹,然后点击Rescan,再点击Stage Changed,输入Commit Message,紧接着点击Commit,最后点击Push并确认。

了解了这些功能之后,就可以使用Git GUI来管理仓库了。

3.5 版本回退

上面说过,Git是一个版本控制软件。所以它可以退回之前的版本,这给予了一定的容错率。

如何回到某一个版本?你先需要查看一下id:

$ git log

先举个输出的例子:

commit e1267329d67e4c0ab1c5e1d28c4c2a3ec764d476 (HEAD -> master, origin/master, origin/HEAD)
Author: waltz26 <qq1932048447@163.com>
Date:   Thu Mar 19 16:23:02 2020 +0800

    数据结构

commit 29138cc72f368cf075ad88eaa111abbbe4cf0e37
Author: waltz26 <qq1932048447@163.com>
Date:   Thu Mar 19 16:09:41 2020 +0800

    子集生成

commit 4515eb9ba1c344d43aa7575e0edf17d11d57bbc3
Author: waltz26 <qq1932048447@163.com>
Date:   Thu Mar 19 13:40:54 2020 +0800

    最近公共祖先

commit b943991c096632b0d525123953a27e0dc2c7c32f
Author: waltz26 <qq1932048447@163.com>
Date:   Thu Mar 19 13:31:51 2020 +0800

如果要回退到某个版本,我们就需要记住那个版本的commit后面的id。然后执行下面的指令:

git reset --hard [commit_id]
git push [shortname] HEAD --force

其中[commit_id]就是你记住的那个id,[shortname]就是之前设置的那个名称。请注意,这样进行版本回退之后是无法撤销的,你无法返回到这个版本后面的版本了。或者你可以选择先不输入第二行指令(第二行指令是更新Github仓库,不输入指令可以只在本地操作调试)。

3.6 版本标签

如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用git tag指令给它打上标签。

比如说,我们想为我们的仓库项目发布一个"1.0"版本。 我们可以用git tag -a v1.0命令给最新一次提交打上(HEAD)"v1.0"的标签。

如果我们忘了给某个提交贴标签,又将它发布了,我们可以给它追加标签:

$ git tag -a v0.9 [commit_id]

查看标签可以输入下面的指令:

$ git tag

感谢浏览😝!

此文章可能会在后续更新,欢迎纠错。