Git常用命令总结
git官方电子书: Pro Git
1.本地仓库初始化
git init
该命令会生成.git(隐藏文件夹),不能删除
2.设置签名
2.1设置仓库级别(仅在当前本地库有效)
# 设置用户名为Kramer
git config user.name Kramer
# 设置用户邮箱
git config user.email yuanyi0826@163.com
2.2系统用户级别(在当前登录的操作系统都有效)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
- 优先级别:项目级别>系统级别
3.基本操作
3.1 查看当前状态
git status # 查看工作区、缓存区状态
3.2添加
git add FileName #添加指定文件到缓存区
git add . #添加所有文件到缓存区
3.3提交
# 将缓存区的内容提交到本地仓库
git commit -m '提交信息(随便写什么)' FileName
3.4查看历史记录
git log
git reflog #这个常用
git log --graph # 图形显示
git log --pretty=oneline # 一行显示
git log --oneline # 简洁显示
3.5版本控制
- 基于索引值控制(前几位就可以)
git reset --hard 指针位置
如:git resrt --hard a6ace91 # 回到这个状态
- 使用^符号(只能后退)
git reset --hard HEAD^
如:git reset HEAD^^
## 有几个^表示后退几步
- 使用~符号(只能后退)
git reset --hard HEAD~n
如:git resrt --hard HEAD~3
## 表示后退3步
- reset的三个参数比较
soft:
- 仅本地库移动HEAD指针
mixed:
- 在本地库移动HEAD指针
- 重置缓存区
hard:
- 在本地库移动HEAD指针
- 重置缓存区
- 重置工作区
3.6 删除文件并找回
- 直接回到之前的版本
git reset --hard 指针位置
3.7文件差异比较
git diff 文件名
git diff 哈希值 文件名 # 和历史中的一个版本比较
git diff # 不带文件名,则比较多个文件
4.分支管理
- 创建分支
git branch 分支名
- 查看分支
git branch
git branch -v
- 切换分支
git checkout 分支名
git checkout -b 分支名 # 创建分支并切换到该分支
- 合并分支
git merge xxx
如:master和分支a合并,需要切换到分支master然后执行git merge a
- 删除分支
git branch -d 分支名
注:分支操作经常会遇到冲突,具体问题具体解决
5.GitHub
5.1创建远程仓库地址名
git remote -v # 查看远程地址和别名
git remote add 别名 远程地址
如:git remote add origin https://xxx
5.2推送
git push 别名 分支名
git push -u 别名 分支名 # -u指定默认主机
如:git push origin master
5.3 克隆
git clone https://xxx
5.4 拉取
本地更新clone下来的文件
git pull 别名 分支名
pull = fetch + merge
git fetch 别名 分支名
git merge 别名 分支名