Git使用笔记
Git基础概念
三块区域
工作区、缓存区、本地仓库
- 工作区:当前的
.git所在文件夹就是工作区 - 缓存区:经过
git add的文件都会进入缓存区 - 仓库:经过
git commit的文件会进入仓库
四种状态
未跟踪(Untrack)、未修改(Unmodified)、已修改(Modified)、已暂存(Staged)
- 新建的文件:untrack
- 对untrack的文件进行add:staged
- 对staged的文件进行commit:unmodified
- 对unmodified的文件进行add:staged
Git基础操作
git -v
使用git -v来查看当前git的版本,可以用来确认当前设备是否安装了git
git config
git config --global user.name 'username'配置用户名git config --global user.email 'useremail@mail.com'配置邮箱git config --global --list查看git的配置信息,可以看到用户名邮箱等
git init
使用 git init在当前目录创建git仓库,会在当前目录下创建一个.git的文件夹
使用git init <filename>在当前目录下新建一个叫filename的文件夹并将其设为一个git仓库,filename下会有一个.git的文件夹
git status
使用git status来查看当前仓库的状态
返回:
- 当前所在的分支
- 未
commit的文件 - 未
add的文件
git add <filename>
ni file1.txt来创建file1.txt,ni指new item,也可以用New-Item file1.txt
dir来查看当前文件夹的信息,dir指dictionary
git add file1.txt将file1.txt添加到缓存区git add *.txt将当前目录下所有.txt的文件保存到缓存区git add .将当前目录下所有文件保存到缓存区
git commit
powershell及大部分其他命令提示符中,单引号是字面量字符串,双引号会解析一下里边的内容
git commit -m '<注释>’ 其中<注释>可以写版本变动说明git commit不加-m的话会呼出文本编辑器来写版本变动说明
git log
使用git log来查看提交(commit)的记录
提交记录中,含有提交的时间,提交的人与唯一的commit ID
使用git log --oneline 查看简洁的提交记录
git reflog
使用git reflog来查看操作历史
git reset
commit ID可以使用
git log或git log --oneline查看,简洁版和完全版都行
git reset --soft <commit ID>表示回退到某一个版本,并保存工作区和暂存区的所有内容git reset --hard <commit ID>表示回退到某一个版本,并丢弃工作区和暂存区的所有内容git reset --soft <commit ID>表示回退到某一个版本,保存工作区的内容,丢弃暂存区的内容,--mixed也是git reset的默认参数
git diff
-
使用
git diff查看工作区有变动的地方 -
使用
git diff HEAD查看工作区与仓库之间的差异 -
使用
git diff --cached查看暂存区与仓库之间的差异 -
使用
git diff <commit ID1> <commit ID2>查看两个版本库之间的差异,一般将较新的放ID2
用
HEAD~或HEAD^表示上一个版本,用HEAD~2表示前两个版本
-
使用
git diff HEAD~ HEAD比较当前版本与上个版本的差异 -
使用
git diff HEAD~ HEAD file3.txt比较当前版本与上个版本的file3.txt的差异
git rm
输入git rm --cached file1.txt将file1.txt文件从缓存区中移除,rm指remove
若不加--cached,git不但会将文件移除缓存区,还会将该文件删除
git ls-files
使用git ls-files来查看被git追踪的所有文件
.gitignore
.gitignore用于忽略git要管理的文件,需要在里面写入要忽略的文件名
.gitignore需要使用utf8格式编码
使用*.log的语法忽略全部.log后缀的文件
如果一个文件已经在暂存区中存在,而后被写入.gitignore,那么这个文件仍然会被git管理,不会被忽略,此时需要使用git rm --cached来移除暂存区
使用temp/的语法忽略temp文件夹
例子:
1 |
|
git push
本地->远程
git pull
远程->本地
VS Code中的Git
文件状态
- ?? 或 U(Untracked) : 未跟踪
- M(Modified) : 已修改
- A(Added) : 已添加
- D(Deleted) : 已删除
- R(Renamed) : 已重命名
- U(Updated) : 已更新未合并





