git常用命令

初次使用git前的配置

# bash

git config --global user.name "用户名"
git config --global user.email "邮箱"

git的一般工作流程

  1. 在工作目录添加丶修改文件 【工作区】
  2. 将需要进行版本管理的文件放入暂存区域 【暂存区】
  3. 将暂存区域的文件提交到git仓库 【git仓库】
# bash

git add <文件名>  # 使用.代表所有文件
git commit -m "一些提示文字"

查看状态

# bash

git status #查看工作区文件状态

红色文件:未跟踪文件丶已在【工作区】修改未提交到【暂存区】文件
绿色文件:已从【工作区】提交到【暂存区】,尚未提交到【git仓库】的文件

# bash

git log #查看所有版本提交信息及哈希序列
# 可选参数
#  --oneline 或者 git log --pretty=oneline 以精简模式显示
#  --graph 以图形模式显示
#  --decorate会显示出tag信息
#  --all 显示所有分支
#  --stat 显示文件更改列表
#  --author= 'name' 显示某个作者的日志
#  -p filepath 查看某个文件的详细修改
#  -L start,end:filepath 查看某个文件某几行范围内的修改记录
#  --stat commitId 或者 git show --stat commitId 查看某一次提交的文件修改列表

版本回退

# bash

git reset [--mixed] HEAD~ #将当前HEAD指向上一个版本,【git仓库】回退到上一个版本,【暂存区】回退到上一个版本
# git reset HEAD~~ # 回退到上两个版本
# git reset HEAD~10 # 回退到上十个版本
# git reset HEAD 哈希序列  # 回退/前进到该哈希序列的版本,哈希值在git status 里查看,哈希值可只输入前几位,如'a34b5'

git reset --soft HEAD~ #仅将【git仓库】回退到上一个版本

git reset --hard HEAD~ #将【git仓库】丶【暂存区】丶【工作区】都回退到上一个版本

版本比较

  1. 比较【暂存区】和【工作区】文件
# bash

git diff # 比较【暂存区】和【工作区】文件的差异

绿色行:相较于【暂存区】新增内容
红色行:相较于【暂存区】减少的内容
灰色行:相同内容

  1. 比较【git仓库】两个版本的文件
# bash

git diff <哈希序列1> <哈希序列2> # 比较【git仓库】哈希序列1和哈希序列2两个版本的文件
  1. 比较【工作区】和【git仓库】的文件
# bash

git diff <哈希序列> # 比较【工作区】和【git仓库】该哈希序列的版本。使用HEAD代替哈希序列即为仓库最新版本
  1. 比较【暂存区】和【git仓库】
# bash

git diff --cached <哈希序列> #比较【暂存区】和【git仓库】该哈希序列的版本

版本修改

  1. 更正【git仓库】最后一次提交
# bash

git commit --ament -m "一些信息" #以此次提交更新【git仓库】最后一个版本,未产生新版本
  1. 取消【工作区】的修改
# bash

git checkout -- <文件名> # 取消【工作区】的修改,包括修改文件丶增删文件,即将【暂存区】文件还原到【工作区】
# git提醒你写成git checkout -- readme.md 的形式,那是为了防止你恰好有一个分支叫做readme.md,约定 -- 后面跟文件名
  1. 删除追踪文件
# bash

git rm <文件名> # 删除工作目录和暂存区域的文件,也就是取消追踪,在下次提交时不纳入版本管理。
# git rm -f 文件名 # 强制删除【工作区】和【暂存区】追踪的该文件
# git rm --cached 文件名 # 仅删除【暂存区】的该文件
  1. 修改文件名
# bash

git mv <旧文件名> <新文件名> # 

分支管理

  1. 创建分支
# bash

git branch <分支1> # 创建分支1
# git checkout -b 分支1 # 创建分支1并切换至分支1
  1. 切换分支
# bash

git checkout <分支1> # HEAD指向 分支1 
  1. 合并分支
# bash

# git checkout master #先切换回待合并到的分支,如master
git merge <分支1> # 合并分支1到当前分支,即master分支
# 分支1和master分支若有冲突的文件,需手动对该文件进行编辑,再合并

  1. 删除分支
# bash

git branch -d <分支1> # 删除分支1

你可能感兴趣的:(git常用命令)