基本用法
基本配置信息
git config --global user.name "name"
,设置 username
git config --global user.email "email"
,设置 email
带引号是配置,不带是查看
Git 的三个区域
- 工作区域
- 暂存区域
- Git 仓库
Git 的工作流程
- 在工作目录中添加和修改文件
- 将需要修改的文件放入暂存区域
- 将暂存区域的文件提交到 Git 仓库
Git 管理的文件的三种状态
- 已修改 ( modified )
- 已暂存 ( staged )
- 已提交 ( committed )
Git 常用指令
-
git init
初始化 git -
git add README.txt
或者git add .
,添加工作文件到暂存区域 -
git commit -m "内容"
,提交暂存区域文件到 git 仓库 -
git status
,查看状态,一般用来查看暂存区域的文件状态 -
git log
,查看日志 -
git rm 文件
,删除文件- 该命令这是删除工作区域和暂存区域的文件,如果删除仓库区域的文件,可以结合
git reset --soft HEAD~
,然后重新add
和commit
即可 -
git rm -f 文件
,强制删除文件 -
git rm --cached 文件
,删除暂存区域文件
- 该命令这是删除工作区域和暂存区域的文件,如果删除仓库区域的文件,可以结合
-
git mv 旧文件名 新文件名
,修改文件名 -
git commit --amend
,修改最后一次快照,点击 i 可以修改文件,如果想退出就:q!
再回车
比较 diff
-
git diff
,比较工作区域和暂存区域 -
git diff 快照id1 快照id2
,比较两个历史快照 -
git diff 快照id1
,比较当前工作区域和仓库快照
reset
的用法
-
git reset HEAD
,当调用了add
命令后,想要恢复到add
之前的状态,可以调用这个命令 -
git reset HEAD~
- 移动 HEAD 的指向,将其指向上一个快照(本来指向最新的 log,即指向倒数第二个)
- 将 HEAD 移动后指向的快照回滚到暂存区域
- 相当于
git reset --mixed HEAD~
,默认情况 - 影响仓库区域和暂存区域
-
git reset --soft HEAD~
- 和
git reset HEAD~
的区别在于,不会修改暂存区域的内容,暂存区域依旧是上一次提交的内容 - 作用的是撤销一次错误提交的命令
- 只影响仓库区域
- 和
-
git reset --hard HEAD~
- 和
git reset HEAD~
的区别在于,还会将上一个快照的暂存区域的文件还原到工作目录 - 影响仓库区域、暂存区域和工作区域
- 和
-
回滚到特定的快照,HEAD 后面加上
hash
值(即 log 日志 的唯一标志) -
回滚个别文件
git reset 版本快照 文件名/路径
-
往前滚,
git reset 快照id
,这里也是有--mixed
、--soft
和--hard
的区分
分支用法
不同分支有自己的快照仓库区域
-
git branch feature
,创建分支 -
git branch
,查看分支 -
git checkout feature
,切换分支 -
git log --decorate
,查看带有分支的 log -
git checkout -b feature2
,快速创建并切换 feature2 分支 -
git branch -d feature
,删除分支
分支合并
git merge feature
,把 feature
分支合并到 master
(当前) 分支上
合并以后一般会发生冲突,就去文件中修改
checkout
的用法总结
-
git checkout -- <file>
,当修改文件后但没有add
,调用这个命令可以根据暂存区域拷贝文件到工作区域 -
git checkout HEAD~ README.md
,调用这个命令可以根据历史快照拷贝上一个快照的文件到暂存区域和工作区域 - 切换分支:
git checkout feature
引用小甲鱼前辈的分支图
网友评论