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: 查找孤立的对象,可能包含丢失的数据。
相关推荐
liupenglove11 小时前
自动驾驶数据仓库:时间片合并算法。
大数据·数据仓库·算法·elasticsearch·自动驾驶
野生技术架构师12 小时前
MySQL数据实时同步到Elasticsearch的高效解决方案
数据库·mysql·elasticsearch
测试开发技术12 小时前
使用 Git 时出现 unable to access,如何解决?
git·面试题
risc12345612 小时前
【Lucene/Elasticsearch】 数据类型(ES 字段类型) | 底层索引结构
elasticsearch
zhougl99613 小时前
git项目,有idea文件夹,怎么去掉
java·git·intellij-idea
全能搬运大师14 小时前
win10安装Elasticsearch
大数据·elasticsearch·搜索引擎
Guheyunyi14 小时前
电气安全监测系统:筑牢电气安全防线
大数据·运维·网络·人工智能·安全·架构
BigData共享14 小时前
StarRocks fragment的执行流程
大数据
舒一笑15 小时前
如何讲解es中的倒排索引我是一个小白给我解释
后端·elasticsearch
阿里云大数据AI技术15 小时前
阿里云 EMR Serverless Spark: 面向 Data+AI 的高性能 Lakehouse 产品
大数据·人工智能·数据分析