git 是非常知名常用的版本管理系统,本知识库将介绍 git 的使用

使用 Git 前需要做的最小配置

配置用户名和邮件

git config --global user.name 'zzg'
git config --global user.email 'zzg373692503@hotmail.com'

参数有–global,–local,–system
local:区域为本仓库
global: 当前用户的所有仓库
system: 本系统的所有用户

清除已配置的 name 和 email

git config --unset --local user.name
git config --unset --global user.name
git config --unset --system user.name

显示 Git 的配置

git config --list --local
git config --list --global

同时配置了 local 和 global

则优先使用 local 的配置

Git 使用

初始化 git 仓库

已有代码建立仓库

cd 到已有的代码文件夹
git init

还未有代码建立仓库

cd 某个文件夹
git init ProjectName #当前目录上创建ProjectName文件夹
cd ProjectName

Git 重命名文件

git mv OldName NewName

Git 删除文件

git rm FileName

Git reset

reset –hard:重置 stage 区和工作目录

reset –hard 会在重置 HEADbranch的同时,重置 stage 区和工作目录里的内容。当你在 reset 后面加了 –hard 参数时,你的 stage 区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。

reset –soft:保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区

reset 不加参数(mixed):保留工作目录,并清空暂存区

reset 的本质

实质上,reset 这个指令虽然可以用来撤销 commit ,但它的实质行为并不是撤销,而是移动 HEAD ,并且「捎带」上 HEAD 所指向的 branch(如果有的话)。也就是说,reset 这个指令的行为其实和它的字面意思 “reset“(重置)十分相符:它是用来重置 HEAD 以及它所指向的 branch 的位置的。
reset –hard HEAD 之所以起到了撤销 commit 的效果,是因为它把 HEAD 和它所指向的 branch 一起移动到了当前 commit 的父 commit 上,从而起到了「撤销」的效果:

Git 的结构

工作区

在工作区存放文件

暂存区

怎么查看暂存区的内容和改动

git status

怎么往暂存区添加文件

git add FileName

本地仓库

怎么往本地仓库里推送文件

git commit -m "noticeInfo"

查看提交日志

git log
git log --oneline #每个提交记录显示为1行
git log --n4 # 显示前4个记录
git log --graph #树状结构
git log master #显示某一分支的log,这里为master分支

远程仓库

git pull
git push

Git 文件的 4 种状态

  1. Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged.
  2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为 Modified.

如果使用 git rm 移出版本库, 则成为 Untracked 文件

  1. Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过,返回到 unmodify 状态, 这个 git checkout 即从库中取出文件, 覆盖当前修改
  2. ** Staged: **暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存,