Note_Tech

All technological notes.


Project maintained by simonangel-fong Hosted on GitHub Pages — Theme by mattgraham

Git - 本地仓库操作

返回Git首页

目录


创建:本地git仓库 git init

Git 使用 git init 命令来初始化一个Git仓库.

在执行完成 git init 命令后,Git仓库会生成一个 .git 目录,该目录包含了资源的所有元数据。

在当前目录创建git仓库

命令

git init

会在当前文件夹中创建 .git 隐藏文件夹。

图片1

图片2

图片3

回到目录


在子目录中创建git仓库

命令

git init <subfolder>

图片4

图片5

回到目录


通用命令

mkdir <new folder>
cd <new folder>
git init

回到目录


克隆:现有的git仓库 git clone

克隆到当前路径

命令

git clone <remote_repo_url>

图片6

git clone 时,可以所用不同的协议,包括 ssh, git, https 等,其中最常用的是 ssh,因为速度较快,还可以配置公钥免输入密码。

各种写法如下:

回到目录


克隆到指定路径

命令

git clone <remote_repo_url> <directory>

图片7

代码说明:在父目录中创建mygrit文件夹

图片8

图片9

回到目录


查看变化:上一次提交后的文件变化git status

显示所有文件变化,包括工作区缓存区的对比,缓存区本地仓库的对比.

命令

git status

图片10

回到目录


无参数:显示所有改动的文件

图片11

回到目录


参数-s:简短输出结果

图片12

回到目录


查看历史 git log

命令

git log

无参数:显示详细历史

图片13


参数oneline:显示简洁历史

图片14

图片15


参数graph:以拓扑图显示历史。

图片16

图片17


参数author:指定用户的历史

图片18

回到目录


提交:将缓存区中的文件提交到仓库git commit

命令

git commit 

图片19


无参数:无参数时,VSC会打开一个文件并在其中编辑

命令

git commit

参数-m <message>:提交并输入message信息。

命令

git commit -m 'message'

代码说明:

  1. 查询状态,显示有未提交缓存的修改文件stage1_py;
  2. 缓存文件,并查询状态,显示修改文件已经缓存;
  3. 提交缓存区中文件并留下信息‘commit1’;
  4. 查询状态,显示无更新。

图片20


参数-a:提交缓存区最新修改。

git commit -am 'message'

代码说明:红色标识“M”标识工作区有修改但没有缓存。

图片21

回到目录


恢复版本:将仓库和缓存区退回到指定HEAD,不保留修心修改git reset

命令

git reset <head>

参数1<head>:退回指定HEAD

代码说明:

  1. 查询状态:工作区、缓存区、仓库文件都一致。
  2. ls-files显示当前缓存区只有demo1_py;
  3. reset后,恢复此前的demo1.py和demo2_py;
  4. ls-files显示当前缓存区恢复了demo1.py和demo2_py。
  5. 查询状态:工作区与缓存区不一致。即reset恢复缓存区,保留工作区。

图片23

图片24


参数1 无参数:不会起作用。

图片22


参数2 mixed:保留修改在工作区(默认)。

当没有参数时,适用–mixed.

代码说明:

  1. 查询log,显示当前HEAD是modified demo1.
  2. 恢复上一版本到缓存区,并保留当前工作区修改。所以显示unstaged changes.
  3. 查询log,显示当前HEAD是create demo1.
  4. 查询当前状态,显示当前demo1是M,即工作区修改了已缓存的demo1. 证明mixed参数是保留工作区修改,但缓存区是指定版本。

图片25


参数2 soft:保留修改在缓存区

代码说明:

  1. 查询log,当前HEAD是modified demo1;
  2. 恢复–soft;
  3. 查询log,当前HEAD是create demo1;
  4. 查询状态,显示标识M,表示当前工作区的修改保留在缓存区。相当于工作区与指定版本的修改被 git add

图片26


参数2 hard:不保留修改。工作区与缓存区都被恢复到指定版本。

代码说明:

  1. 查询log,显示当前HEAD是modified demo;
  2. 恢复版本;
  3. 查询log,显示当前HEAD是create demo;
  4. 查询状态,显示当前工作区,缓存区和指定版本相同。 所以–hard参数的效果是不保留修改,工作区与缓存区都被恢复到指定版本

图片27


总结:reset

回到目录


返回Git首页