其他 · 2024年 11月 29日 0

史上最全git命令及说明

一、基本配置与初始化

  1. git config
    • 说明:配置Git的各种选项和变量。
    • 用例
      • 设置用户名:git config --global user.name "[name]"
      • 设置邮箱:git config --global user.email "[email address]"
  2. git init
    • 说明:在当前目录初始化一个新的Git仓库。
    • 用例git init [repository name](可选仓库名)
  3. git clone
    • 说明:克隆远程仓库到本地。
    • 用例git clone [url]

二、文件操作

  1. git add
    • 说明:将文件添加到暂存区。
    • 用例
      • 添加指定文件:git add [file1] [file2]...
      • 添加当前目录下所有修改或新增的文件:git add .
  2. git commit
    • 说明:提交暂存区的文件到本地仓库。
    • 用例git commit -m "[Type in the commit message]"
  3. git status
    • 说明:显示工作区和暂存区的状态。
    • 用例git status
  4. git diff
    • 说明:显示文件修改的差异。
    • 用例
      • 显示工作区与暂存区的差异:git diff
      • 显示两个分支之间的差异:git diff [first branch] [second branch]
  5. git rm
    • 说明:从版本库中删除文件,并将删除动作添加到暂存区。
    • 用例git rm [file]
  6. git mv
    • 说明:移动或重命名文件。
    • 用例git mv [old name] [new name]

三、分支与合并

  1. git branch
    • 说明:列出、创建或删除分支。
    • 用例
      • 列出所有本地分支:git branch
      • 创建新分支:git branch [branch name]
      • 删除指定分支:git branch -d [branch name](确保分支已合并)
  2. git checkout
    • 说明:切换分支或恢复文件。
    • 用例
      • 切换分支:git checkout [branch name]
      • 创建并切换到新分支:git checkout -b [branch name]
      • 恢复文件到最近一次提交的状态:git checkout -- [file]
  3. git merge
    • 说明:合并指定分支到当前分支。
    • 用例git merge [branch name]
  4. git rebase
    • 说明:变基操作,将提交应用于另一分支。
    • 用例git rebase [branch]

四、远程操作

  1. git remote
    • 说明:管理远程仓库。
    • 用例
      • 显示远程仓库的详细信息:git remote -v
      • 添加远程仓库:git remote add [variable name] [Remote Server Link]
      • 移除远程仓库:git remote rm [variable name]
  2. git fetch
    • 说明:从远程仓库拉取最新变更,但不会自动合并到本地分支。
    • 用例git fetch [remote]
  3. git pull
    • 说明:拉取远程分支并合并到本地分支。
    • 用例
      • 拉取并合并指定分支:git pull [remote] [branch]
      • 使用rebase方式拉取:git pull --rebase [remote] [branch]
  4. git push
    • 说明:将本地分支推送到远程仓库。
    • 用例
      • 推送主分支:git push [variable name] master
      • 推送指定分支:git push [variable name] [branch]
      • 推送所有分支:git push [variable name] --all
      • 删除远程分支:git push [variable name] :[branch name]
      • 强制推送:git push [variable name] [branch] --force

五、撤销与重置

  1. git reset
    • 说明:撤销提交或将文件从暂存区移除。
    • 用例
      • 撤销暂存区的文件更改:git reset [file]
      • 撤销指定提交之后的所有提交,并在本地保留变更:git reset --hard [commit hash]
  2. git revert
    • 说明:撤销指定提交的更改,并创建一个新的提交来反转该更改。
    • 用例git revert [commit]
  3. git stash
    • 说明:暂存当前工作区的修改。
    • 用例
      • 暂存修改:git stash
      • 应用暂存的修改:git stash apply
      • 恢复并删除暂存的修改:git stash pop
      • 删除暂存的修改:git stash drop

六、查看历史与日志

  1. git log
    • 说明:显示提交日志。
    • 用例
      • 查看当前分支的提交历史记录:git log
      • 查看最近3个版本的修改情况:git log --no-pager -3 -p
      • 查看分支合并图:git log --graph
  2. git show
    • 说明:显示某次提交的详细内容。
    • 用例git show [commit]
  3. git reflog
    • 说明:查看引用日志,用于恢复误删除的提交或分支。
    • 用例git reflog

七、其他高级命令

  1. git tag
    • 说明:创建、列出或删除标签。
    • 用例
      • 列出标签:git tag
      • 创建标签:git tag [name]
      • 删除标签:git tag -d [name]
  2. git bisect
    • 说明:用于二分查找引入bug的提交。
    • 用例
      • 启动二分查找:git bisect start
      • 标记当前提交包含bug:git bisect bad
      • 标记指定提交为没有bug:git bisect good [commit]
      • 结束二分查找并重置HEAD到原来的状态:git bisect reset
  3. git grep
    • 说明:在代码库中搜索指定模式。
    • 用例git grep [pattern]
  4. git clean
    • 说明:从工作区中移除未跟踪的文件。
    • 用例
      • 显示将要删除的未跟踪文件,但并不删除它们:git clean -n
      • 强制删除工作区中的未跟踪文件:git clean -f
      • 删除未跟踪文件和目录:git clean -df
  5. git submodule
    • 说明:管理子模块。
    • 用例:根据具体需求使用相关子模块命令。
  6. git worktree
    • 说明:管理多个工作树。
    • 用例:根据具体需求使用相关工作树命令。