git 命令速查

创建仓库

#克隆远程仓库
git clone <url>
#初始化本地仓库
git init

修改和提交

#查看当前目录文件状态(已修改,未暂存...)
git status
#查看还未加入暂存区的文件的变更内容
git diff
#跟踪所有改动过的文件
git add .
#跟踪指定文件
git add "fileName"
#文件改名
git mv "oldName" "newName"
#删除文件
git rm "fileName"
#从仓库和暂存区删除,但工作区保留
git rm --cached "fileName"
#提交所有在暂存区且发生变动的文件
git commit -m "commit message"
#跳过使用 git add,提交所有跟踪过的文件
git commit -a

查看提交历史

#查看提交历史,不带参数时,按时间列出更新,最近更新在最上面
git log
#查看每次提交的内容差异
git log -p
#查看指定文件的提交历史
git log -p "fileName"
#最近n条历史
git log -p -<n>

更多: git log 相关

撤销

#重写上一次的 commit message, 不会产生新的提交
git commit --amend
#取消暂存的文件
git reset HEAD "fileName"
#撤销修改,还原文件为上次提交时的样子
git checkout -- "fileName"

分支

#显示所有分支
git branch
#创建新分支
git branch ”newBranch“
#切换分支
git checkout "branchName"
#合并指定分支到当前分支
git merge "branchName"
#查看已经合并到当前分支的分支们
git branch --merged
#删除指定分支
git branch -d "branchName"

远程

# 下载远程仓库的所有变动
git fetch [remote]
# 显示所有远程仓库
git remote -v
# 显示某个远程仓库的信息
git remote show [remote]
# 增加一个新的远程仓库,并命名
git remote add [shortname] [url]
# 取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
# 上传本地指定分支到远程仓库
git push [remote] [branch]
# 强行推送当前分支到远程仓库,即使有冲突
git push [remote] --force

git 基本概念

Git 的三个工作区域:

  • git 仓库:保存项目的数据的地方
  • 工作区: 从 git 仓库中提取出来,供自己编辑修改的文件
  • 暂存区: 保存下次将提交的的文件列表信息

Git 有三种状态:

  • 已提交(committed) 数据已保存在本地数据库
  • 已修改(modified) 数据已在编辑器中修改并保存在文件
  • 已暂存(staged) 对已修改的文件做标记,下次提交到 git 仓库

Git 基本工作流程

  1. 在工作目录中修改文件。
  2. 暂存文件,将文件的快照放入暂存区域。
  3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录