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- 显示远程仓库的URLadd <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- 列出所有stashdrop- 删除最近的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命令使用技巧