Git常用的命令记录

帮助命令

git help打印帮助

用法:git [--version] [--help] [-C ] [-c name=value]
           [--exec-path[=]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=] [--work-tree=] [--namespace=]
            []

开始一个工作区(参见:git help tutorial)
   clone      克隆一个仓库到一个新目录
   init       创建一个空的 Git 仓库或重新初始化一个已存在的仓库

在当前变更上工作(参见:git help everyday)
   add        添加文件内容至索引
   mv         移动或重命名一个文件、目录或符号链接
   reset      重置当前 HEAD 到指定状态
   rm         从工作区和索引中删除文件

检查历史和状态(参见:git help revisions)
   bisect     通过二分查找定位引入 bug 的提交
   grep       输出和模式匹配的行
   log        显示提交日志
   show       显示各种类型的对象
   status     显示工作区状态

扩展、标记和调校您的历史记录
   branch     列出、创建或删除分支
   checkout   切换分支或恢复工作区文件
   commit     记录变更到仓库
   diff       显示提交之间、提交和工作区之间等的差异
   merge      合并两个或更多开发历史
   rebase     在另一个分支上重新应用提交
   tag        创建、列出、删除或校验一个 GPG 签名的标签对象

协同(参见:git help workflows)
   fetch      从另外一个仓库下载对象和引用
   pull       获取并整合另外的仓库或一个本地分支
   push       更新远程引用和相关的对象

命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些概念帮助。
查看 'git help <命令>' 或 'git help <概念>' 以获取给定子命令或概念的
帮助。

常用命令

# 初始化仓库
git init
# 配置用户信息(全局或项目级)
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# 创建项目文件并添加到暂存区
echo "# My Project" > README.md
git add .
# 提交初始版本
git commit -m "Initial commit"
# 关联远程仓库(可选)
git remote add origin https://github.com/user/repo.git
git push -u origin main
# 分支管理(推荐), 开发新功能时应创建独立分支
git checkout -b dev
# 查看当前分支状态
git branch -vv
# 查看仓库状态
git status
# 首次推送可能需执行
git push --set-upstream origin main
# 推荐配置.gitignore文件来排除不需要版本控制的文件

远程仓库管理

git remote add origin是Git中用于关联本地仓库与远程仓库的核心命令,其标准语法为git remote add origin <远程仓库URL>

  • origin是Git默认的远程仓库别名,代表主远程仓库
  • 支持HTTPS和SSH两种协议地址(如https://github.com/user/repo.gitgit@github.com:user/repo.git
  • 需在本地仓库初始化(git init)后执行

关联远程仓库

# 添加远程仓库关联
git remote add origin https://github.com/user/repo.git
# 验证关联状态
git remote -v
# 首次推送代码
git push -u origin main

修改远程仓库

# 查看当前远程地址
git remote -v
# 修改远程地址
git remote set-url origin <新URL>
# 删除关联
git remote remove origin
# 重命名远程
git remote rename origin new-name
# 分支关联:若修改后出现分支未关联错误,需重新设置上游分支
git branch --set-upstream-to=origin/<分支名> <本地分支名>

分支切换

查看分支

# 查看所有分支
git branch -a       # 查看本地和远程分支
git branch          # 仅查看本地分支

切换分支

# 切换到已存在的本地分支
git checkout <分支名>
git switch <分支名> # (Git 2.23+推荐)

# 创建并切换到新分支
git checkout -b <新分支名>
git switch -c <新分支名> # (Git 2.23+推荐)

# 切换到远程分支
git checkout --track origin/<远程分支名>

## 特殊场景
# 切换到标签(分离头指针状态)
git checkout v1.0  # 切换到标签
# 切换到特定提交
git checkout 提交哈希值

切换分支时的注意事项

# 如果工作区有未提交的修改,Git会阻止切换分支。可通过以下方式处理:
git stash          # 暂存修改
git switch 分支名   # 切换分支
git stash pop      # 恢复修改

# 强制切换(丢弃修改)
git checkout -f <分支名>

分支合并

在Git中合并分支主要有两种核心方式:‌Merge(合并)‌和‌Rebase(变基)

合并分支-基础合并(Merge)

# 切换到目标分支
git checkout main  # 切换到主分支
# 执行合并命令
git merge feature  # 将feature分支合并到当前分支
# 普通合并:生成一个合并提交(Merge Commit),保留完整历史记录
# 非快进合并(--no-ff):强制生成合并节点,避免丢失分支历史
git merge --no-ff feature
# 解决冲突。若合并时发生冲突,需手动修改冲突文件后提交
git add <冲突文件>  
git commit -m "解决合并冲突"

合并分支-变基合并(Rebase)

# 切换到开发分支 feature
git checkout feature
# 变基到目标分支
git rebase main  # 将feature分支的提交“重放”到main分支最新提交之后
# 变基后历史记录呈线性,更简洁
# 冲突处理:需对每个提交逐一解决冲突,使用git rebase --continue继续
# 合并到主分支
git checkout main  
git merge feature  # 此时为快进合并
场景 推荐方式 原因
公共分支(如main) Merge 避免重写历史,保证协作安全
个人本地分支整理 Rebase 保持提交历史线性清晰
短期功能分支 Squash Merge 压缩多个提交为单个,简化主分支历史
上一篇
下一篇