git的一些基础知识


一、概念

1、四个工作区域

Git 有四个工作区域:

  • 工作目录(Working Directory):工作区,就是你平时存放项目代码的地方
  • 暂存区(Stage/Index):暂存区,用于临时存放你的改动,事实上它只是一个文件,保存
    即将提交到文件列表信息
  • 仓库区(或版本库,本地仓库)(Repository 或 Git Directory):就是安全存放数据的位置,这里面有你提交
    到所有版本的数据。其中 HEAD 指向最新放入仓库的版本
  • 远程仓库(Remote Directory):托管代码的服务器,可以简单的认为是你项目组中的一台电
    脑用于远程数据交换

文件在这四个区域之间的转换关系如下:

在这里插入图片描述

2、工作流程

git 的工作流程一般是这样的:

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到本地仓库。
  4. 从本地仓库push到远程仓库

3、文件的四种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要
知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者
要提交的文件没提交上。

GIT 不关心文件两个版本之间的具体差别,而是关心文件的整体是否有改
变,若文件被改变,在添加提交时就生成文件新版本的快照,而判断文件整
体是否改变的方法就是用SHA-1 算法计算文件的校验和。
在这里插入图片描述

  1. Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged.
  2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为 Modified.如果使用 git rm移出版本库, 则成为 Untracked 文件
  3. Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到 unmodify 状态, 这个 git checkout 即从库中取出文件, 覆盖当前修改
  4. Staged: 暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存,文件状态为 Modified

在这里插入图片描述
新建文件—>Untracked
使用 add 命令将新建的文件加入到暂存区—>Staged
使用 commit 命令将暂存区的文件提交到本地仓库—>Unmodified
如果对 Unmodified 状态的文件进行修改—> modified
如果对 Unmodified 状态的文件进行 remove 操作—>Untracked

二、四个区域常用命令

1、新建代码库

# 在当前目录新建一个 Git 代码库
git init
# 新建一个目录,将其初始化为 Git 代码库
git init [project-name]
# 下载一个项目和它的整个代码历史
git clone [url]

2、查看文件状态

#查看指定文件状态
git status [filename]
#查看所有文件状态
git status

3、工作区<–>暂存区

# 添加指定文件到暂存区
git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
git add [dir]
# 添加当前目录的所有文件到暂存区
git add .
#当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可
以使用(⚠ )
git rm file_path
#当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 这个时候直接
push 那边这个文件就没有,如果 push 之前重新 add 那么还是会有。
git rm --cached file_path
#直接加文件名从暂存区将文件恢复到工作区,如果工作区已经有该文件,则会选
择覆盖
#加了【分支名】 +文件名 则表示从分支名为所写的分支名中拉取文件 并覆盖
工作区里的文件
#切换分支
git checkout 分支名
#添加并切换分支
git checkout -b 分支名
#删除并切换分支
git checkout -d 分支名
#添加分支
git branch 分支名

4、工作区<–>资源库(版本库)

#将暂存区-->资源库(版本库)
git commit -m '该次提交说明'
#如果出现:将不必要的文件 commit 或者 上次提交觉得是错的 或者 不想改
变暂存区内容,只是想调整提交的信息
#移除不必要的添加到暂存区的文件
git reset HEAD 文件名
#去掉上一次的提交(会直接变成 add 之前状态)
git reset  --hard HEAD~1
#去掉上一次的提交(变成 add 之后,commit 之前状态)
git reset --soft HEAD~1

5、远程操作

# 取回远程仓库的变化,并与本地分支合并
git pull
# 上传本地指定分支到远程仓库
git push

6、其它常用命令

# 显示当前的 Git 配置
git config --list
# 编辑 Git 配置文件
git config -e [--global]
#初次 commit 之前,需要配置用户邮箱及用户名,使用以下命令:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
#调出 Git 的帮助文档
git --help
#查看某个具体命令的帮助文档
git +命令 --help
#查看 git 的版本
git --version
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值