# git init

初始化本地仓库,创建 .git 文件夹

# git add

将文件添加到暂存区

# git commit

将暂存区的文件提交到当前分支(本地仓库)

# 常用命令

  • -m <info> :添加提交的说明

# git push

将当前分支的内容提交到远程分支

  • -f

# git log

查询提交的日志(按时间近到远排序),不包括已经被删除的 commit 记录和 reset 操作

# 常用命令

  • --pretty=oneline :只显示一行(id + 提交的信息)

# git reflog

显示所有的操作记录,包括提交和回退的操作

# git branch

查看本地所以分支

  • -r :查看所有远程分支
  • -d <branch> :删除指定 branch 分支
  • --set-upstream-to=origin/dev :将本地 dev 和远程 dev 链接

# git fetch

更新远程的所有分支到本地

# git reset

版本回退

git 的版本回退是将 hard 指针指向另一个版本,因此速度极快

# 常用命令

  • --hard <commit id> :id 为 commit id,可以通过 git log 或者 git reflog 查看,不需要补全全部,git 会自动去查找对应的 id。
  • HEAD <file> :将暂存区的修改撤销,放回工作区

# git checkout

# 常用命令

  • -- <file> :把指定文件在工作区的修改全部撤销
  • -b <branch> :创建并切换分支

切换分支的原理:创建分支时创建一个新的指针指向当前分支的 Head(如果指定 commit id,指向对应的 commit 提交),切换分支就是将 Head 指向新的分支的指针

# git switch

切换、创建分支

# 常用命令

  • <branch> :切换分支,不存在的分支会报错
  • -c <branch> :创建并切换分支
  • -c <branch> <commit id> :以一个 commit 创建切换分支

# git merge

# 常用命令

  • <branch> :把 branch 分支合并到当前分支(需要处理可能存在的冲突),默认会使用 Fast forward (删除分支后,会丢掉分支的信息)模式
  • --no-ff -m <info> <branch> :强制禁用 Fast forward

# git stash

将工作区文件储藏

当前分支开发到一半,不想或者说没法提交,需要切换分支

# 常用命令

  • apply :恢复 stash 储藏的文件,但是不删除 stash 的内容
  • drop :删除 stash 的内容
  • pop :apply + drop
  • list :查看所有的 stash

# git cherry-pick

将一次提交所在的修改复制到当前分支

# 常用命令

  • <commit id>

# git remote

操作本地和远程的的关系

# 常见命令

  • add origin <url> :本地仓库与远程仓库绑定
  • rm origin

origin:可以当成远程仓库的别名,使用链接太过冗长。

# git rebase

将杂乱的 git log 梳理成一条直线(谨慎使用)

# git tag

为 commit 打上标签,使得查找更加方便

# 常用命令

  • <name>
  • <name> <commit id> :为指定的 commit 打上 tag 标签
  • -d <name> :删除特定的 tag 标签

# git show

查看标签的具体信息

# 常用命令

  • <tag name>

# git cherry-pick

将一个分支的 commit 转移到另一个分支

# 常用命令

  • <commit hash> :当前分支产生一个新的 commit
  • <branch> :当前分支产生一个指定分支最新的 commit

# git submodule

更新于

请我喝[茶]~( ̄▽ ̄)~*

ceilzcx 微信支付

微信支付

ceilzcx 支付宝

支付宝

ceilzcx 贝宝

贝宝