Git命令大全(超详细)

Git 是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个用户之间的工作。下面是一份较为详细的 Git 命令大全,涵盖了从初始化仓库到日常使用中常见的操作。

1. 初始化与配置

  • 设置用户信息:
    • git config --global user.name "Your Name": 设置全局用户名。
    • git config --global user.email "your.email@example.com": 设置全局邮箱。
    • 若要为特定仓库设置不同的信息,可以在仓库目录下运行上述命令而不带 --global 参数。
  • 初始化仓库:
    • git init: 在当前目录创建一个新的 Git 仓库。
    • git clone <repository>: 克隆一个远程仓库到本地指定路径。例如:git clone https://github.com/user/repo.git

2. 工作区、暂存区和提交

  • 添加文件至暂存区:
    • git add .: 添加所有修改过的文件到暂存区。
    • git add <file>: 只添加指定文件。
  • 提交更改:
    • git commit -m "commit message": 提交暂存区的内容,并附上说明。
    • git commit --amend: 修改最近一次提交的信息或内容(可以加入新的文件)。
  • 撤销操作:
    • git reset HEAD <file>: 将文件从暂存区移回工作区,但保留改动。
    • git checkout -- <file>: 放弃对文件的所有未提交修改。
    • git clean -f: 删除未被追踪的文件和目录(谨慎使用 -f 标志)。

3. 分支管理

  • 创建分支:
    • git branch <branch-name>: 创建新分支但不切换过去。
    • git checkout -b <branch-name> 或者 git switch -c <branch-name>: 创建并立即切换到新分支。
  • 切换分支:
    • git checkout <branch-name>git switch <branch-name>.
  • 合并分支:
    • git merge <branch-to-merge>: 将指定分支合并到当前分支。
  • 删除分支:
    • git branch -d <branch-name>: 安全删除已完全合并的分支。
    • git branch -D <branch-name>: 强制删除分支,即使它没有被合并。

4. 查看状态与历史

  • 查看状态:
    • git status: 显示工作目录中哪些文件被修改了,哪些文件在暂存区等。
  • 查看日志:
    • git log: 显示提交记录,默认显示所有分支的提交。
    • git log --oneline --graph --all --decorate: 以简洁格式展示带有图形的历史记录。
  • 差异比较:
    • git diff: 比较工作区与暂存区的差异。
    • git diff --cached: 比较暂存区与最新提交的差异。
    • git diff <commit1> <commit2>: 比较两个提交之间的差异。

5. 远程仓库

  • 添加远程仓库:
    • git remote add origin <url>: 添加名为 origin 的远程仓库。
  • 获取更新:
    • git fetch origin: 获取远程仓库的最新信息,但不自动合并到本地分支。
  • 拉取更新:
    • git pull origin master: 从远程仓库拉取最新的代码并尝试合并到当前分支。
  • 推送更改:
    • git push origin master: 推送本地 master 分支到远程仓库。
    • git push -u origin <new-branch>: 首次推送新分支时使用 -u 参数建立跟踪关系。
  • 查看远程仓库:
    • git remote -v: 列出所有配置的远程仓库及其 URL。
  • 删除远程仓库链接:
    • git remote remove origin: 移除名为 origin 的远程仓库链接。

6. 标签

  • 创建标签:
    • git tag <tagname>: 对最新提交打标签。
    • git tag -a <tagname> -m "msg": 创建带注释的标签。
  • 查看标签:
    • git show <tagname>: 显示指定标签的详细信息。
  • 推送标签:
    • git push origin <tagname>: 推送单个标签到远程仓库。
    • git push origin --tags: 推送所有标签到远程仓库。
  • 删除标签:
    • git tag -d <tagname>: 删除本地标签。
    • git push origin :refs/tags/<tagname>: 删除远程标签。

7. 高级特性

  • 变基:
    • git rebase <branch>: 将当前分支的提交重新应用到另一分支之上。
  • 选择性应用提交:
    • git cherry-pick <commit>: 应用其他分支上的某个特定提交。
  • 二分查找问题:
    • git bisect start: 开始二分查找过程。
    • git bisect bad <commit>: 标记某提交引入了错误。
    • git bisect good <commit>: 标记某提交是好的。
    • git bisect reset: 结束二分查找过程。
  • 恢复丢失的工作:
    • git reflog: 记录了HEAD指针的变化,可用于恢复丢失的提交。
    • git fsck --lost-found: 查找孤立的对象,可能包含丢失的数据。
相关推荐
Elasticsearch2 小时前
3个信号、2个环境变量、0个采集器:使用 Python 和 Elastic 的托管 OTLP 端点实现 OpenTelemetry
elasticsearch
Elasticsearch2 天前
如何通过 Claude Code 来写入 CSV 数据到 Elasticsearch
elasticsearch
得物技术3 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
深海鱼在掘金3 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
久美子3 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1234 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能4 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
ApacheSeaTunnel4 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574094 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf