我选

我选

办公所需全收藏

Git备忘录

DevOps工具

基础命令

git init

初始化一个新的Git仓库

示例:

git init my-project

常用选项:

  • --bare - 创建一个裸仓库(没有工作目录)
git clone

克隆一个远程仓库到本地

示例:

git clone https://github.com/username/repository.git

常用选项:

  • --depth 1 - 创建一个浅克隆,只包含最近的一次提交
  • -b <branch> - 指定要克隆的分支
git add

将文件添加到暂存区

示例:

git add file.txt
git add .

常用选项:

  • -A - 添加所有更改的文件
  • -u - 添加已跟踪文件的更改
git commit

提交暂存区的更改

示例:

git commit -m "Initial commit"

常用选项:

  • -m <message> - 提交消息
  • -a - 自动暂存已跟踪文件并提交
  • --amend - 修改最后一次提交
git status

查看仓库的当前状态

示例:

git status

常用选项:

  • -s - 简短输出格式
git log

查看提交历史

示例:

git log
git log --oneline

常用选项:

  • --oneline - 每行显示一个提交
  • -n <number> - 显示最近的n个提交
  • --graph - 显示分支合并图

分支管理

git branch

列出、创建或删除分支

示例:

git branch
git branch new-feature
git branch -d old-branch

常用选项:

  • -a - 列出所有分支(包括远程分支)
  • -d <branch> - 删除分支
  • -D <branch> - 强制删除分支
git checkout

切换分支或恢复工作区文件

示例:

git checkout main
git checkout -b new-feature

常用选项:

  • -b <branch> - 创建并切换到新分支
  • -- <file> - 恢复工作区文件
git switch

切换分支(Git 2.23+)

示例:

git switch main
git switch -c new-feature

常用选项:

  • -c <branch> - 创建并切换到新分支
git merge

合并一个或多个分支到当前分支

示例:

git merge feature-branch

常用选项:

  • --no-ff - 创建一个新的合并提交,即使是快进合并
  • --squash - 将所有提交压缩为一个提交
git rebase

将一个分支的提交应用到另一个分支

示例:

git rebase main

常用选项:

  • -i <commit> - 交互式rebase

远程仓库

git remote

管理远程仓库

示例:

git remote -v
git remote add origin https://github.com/username/repository.git

常用选项:

  • -v - 显示远程仓库的URL
  • add <name> <url> - 添加远程仓库
  • remove <name> - 删除远程仓库
git fetch

从远程仓库获取更新

示例:

git fetch origin

常用选项:

  • --all - 从所有远程仓库获取更新
git pull

从远程仓库获取更新并合并到当前分支

示例:

git pull origin main

常用选项:

  • --rebase - 使用rebase而不是merge
git push

将本地提交推送到远程仓库

示例:

git push origin main
git push -u origin new-branch

常用选项:

  • -u - 设置上游分支
  • --force - 强制推送

撤销操作

git reset

重置当前HEAD到指定状态

示例:

git reset HEAD~1
git reset --hard HEAD~1

常用选项:

  • --soft - 保留工作区和暂存区的更改
  • --mixed - 保留工作区的更改,重置暂存区
  • --hard - 丢弃所有更改
git revert

创建一个新的提交来撤销指定提交的更改

示例:

git revert HEAD

常用选项:

  • -m <parent-number> - 指定要保留的父提交(用于合并提交)
git stash

暂时保存工作区的更改

示例:

git stash
git stash pop

常用选项:

  • push - 保存更改
  • pop - 恢复最近的stash并删除它
  • list - 列出所有stash
  • drop - 删除最近的stash

高级命令

git diff

查看文件的更改

示例:

git diff
git diff --staged

常用选项:

  • --staged - 查看暂存区和上次提交之间的差异
  • <commit1> <commit2> - 查看两个提交之间的差异
git tag

创建、列出或删除标签

示例:

git tag v1.0.0
git tag -a v1.0.0 -m "Version 1.0.0"

常用选项:

  • -a - 创建带注释的标签
  • -l - 列出标签
  • -d <tag> - 删除标签
git submodule

管理子模块

示例:

git submodule add <url> <path>
git submodule update --init --recursive

常用选项:

  • add <url> <path> - 添加子模块
  • update --init --recursive - 初始化并更新所有子模块
git bisect

通过二分查找定位引入bug的提交

示例:

git bisect start
git bisect bad
git bisect good <good-commit>

常用选项:

  • start - 开始二分查找
  • bad - 标记当前提交为有问题
  • good <commit> - 标记指定提交为没问题
  • reset - 结束二分查找

工具说明

Git备忘录工具提供常用Git命令的参考和使用示例。它按类别组织Git命令,方便开发者快速查找和使用Git命令,是学习和使用Git的实用工具。

使用场景

  • 学习Git命令的基本用法
  • 查找不常用Git命令的语法
  • 作为Git命令的快速参考手册
  • 分享Git命令使用技巧