type
status
date
slug
summary
tags
category
icon
password

什么是Git

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git中的基本概念

我们先来理解下Git工作区、暂存区和版本库概念:
  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage或index。一般存放在.git目录下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
  • 远程仓库:就是如Github或者其他平台上发布的代码。

如何使用

配置用户

开始使用之前我们需要配置用户信息:
这里的用户名和邮箱可以乱填,仅仅是区分不使用者的作用。如果去掉 --global 参数只对当前仓库有效。

创建仓库

创建仓库有两种方法,一种是本地文件夹作为一个新的仓库,另一种的将远程仓库克隆到本地作为一个仓库。

创建新仓库

以当前目录仓库作为Git仓库,我们只需要将其初始化:
该命令执行完后会在当前目录生成一个.git目录。

检出仓库

即使用git clone从现有Git仓库中拷贝项目。执行如下命令以创建一个本地仓库的克隆版本:
如果是远端服务器上的仓库,你的命令会是这个样子:

提交与修改

你对文件完成更改之后,便可以将他们提交(把它们添加到暂存区),使用如下命令:
如果文件过多,一个一个修改过于麻烦,也可以一次性提交所有文件:
当多次提交后我们无法记得每次提交都修改了些什么内容,我们可以在提交完后写上一些备注:
这样,我们在之后就可以很方便的了解每次提交都修改了些什么内容,我们可以使用以下操作来查看历史提交记录(包括提交人,提交时间,内容备注):
这个命令还可以添加很多参数来提供更为详细的信息:
参数
说明
-p
显示提交的补丁(具体更改内容)。
--oneline
以简洁的一行格式显示提交信息
--graph
以图形化方式显示分支和合并历
--decorate
显示分支和标签指向的提交
--author=<作者>
只显示特定作者的提交
--since=<时间>
只显示指定时间之后的提交
--until=<时间>
只显示指定时间之前的提交。
--grep=<模式>
只显示包含指定模式的提交消息。
--no-merges
不显示合并提交。
--stat
显示简略统计信息,包括修改的文件和行数。
--abbrev-commit
使用短提交哈希值。
--pretty=<格式>
使用自定义的提交信息显示格式。
除此之外,我们还可以以列表形式查看指定文件的历史修改记录:
每次提交后都有一个commit id,我们通过历史提交记录可以获取每次的commit id,这个commit id可以帮助我们查看这次提交到底修改了哪些内容:

代码回溯

前面说了可以查看项目的历史版本,这显然不够用,有时候我们还会有回到某一历史版本的需求,下面两条指令均可以完成我们的需要:

分支

notion image
Maser分支是由git自动创建的,一般用来保存经过测试的稳定代码,一般不轻易改动,我们用下面这个命令可以查看当前都有哪些分支。
我们可以使用下面这个命令来创建一个新的分支,并切换到新的分支完成新功能的开发:
除非将分支推送到远端仓库,不然别人是看不见这个分支的。
当你切换分支的时候,Git会用该分支的最后提交的快照替换你的工作目录的内容,所以多个分支不需要多个目录。
当我们完成新的开发时,需要将我们创建的分支的代码合并到Master分支上

远程操作

下面是工作区,暂存库和远程仓库三者之间的关系。
notion image
本地仓库修改完成后我们可以手动推送到远程仓库:

参考文献

Go接口并查集
Serendipity
Serendipity
From CCNU
Announcement
type
status
date
slug
summary
tags
category
icon
password
本网站部署于国外服务器,国内访问较慢。多刷新或挂梯子。