Git基础
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 会在重置 HEAD 和branch的同时,重置 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 种状态
- Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged.
- Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为 Modified.
如果使用 git rm 移出版本库, 则成为 Untracked 文件
- Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过,返回到 unmodify 状态, 这个 git checkout 即从库中取出文件, 覆盖当前修改
- ** Staged: **暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存,
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小周の代码之路!
评论