Git命令之江湖百晓生

Git命令之江湖百晓生

码农世界 2024-05-28 前端 89 次浏览 0个评论

Git 命令大全

第一章:Git 简介

Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,用于有效、高速地处理从小到大的项目。它是一个命令行工具,用于跟踪和管理源代码历史记录。

第二章:Git 的 100 种命令

以下是 Git 的 100 种常用命令,每种命令都附有基本用法、使用场景和示例。

基础命令

  1. git init - 初始化一个新的 Git 仓库。

    • 场景:开始一个新项目。
    • 示例:git init my-project
    • git clone [url] - 克隆远程仓库到本地。

      • 场景:获取远程仓库的副本。
      • 示例:git clone https://github.com/user/repo.git
      • git add [file] - 将文件添加到暂存区。

        • 场景:准备提交。
        • 示例:git add README.md
        • git commit -m "[message]" - 提交更改到仓库。

          • 场景:保存更改。
          • 示例:git commit -m "Add README"
          • git status - 显示仓库的状态。

            • 场景:查看当前状态。
            • 示例:git status
            • git log - 显示提交历史。

              • 场景:查看历史记录。
              • 示例:git log
              • git diff - 显示更改的文件差异。

                • 场景:查看更改。
                • 示例:git diff
                • git branch - 列出本地分支。

                  • 场景:查看分支。
                  • 示例:git branch
                  • git checkout [branch] - 切换到指定分支。

                    • 场景:切换分支。
                    • 示例:git checkout feature
                    • git merge [branch] - 合并指定分支到当前分支。

                      • 场景:合并分支。
                      • 示例:git merge feature

分支管理

  1. git branch -a - 列出所有分支(本地和远程)。

    • 示例:git branch -a
    • git branch -r - 列出远程分支。

      • 示例:git branch -r
      • git branch -d [branch] - 删除本地分支。

        • 示例:git branch -d feature
        • git branch -D [branch] - 强制删除本地分支。

          • 示例:git branch -D feature
          • git checkout -b [branch] - 创建并切换到新分支。

            • 示例:git checkout -b feature
            • git push origin --delete [branch] - 删除远程分支。

              • 示例:git push origin --delete feature
              • git fetch - 从远程仓库获取所有分支。

                • 示例:git fetch
                • git pull - 从远程仓库获取并合并到当前分支。

                  • 示例:git pull origin master
                  • git push [remote] [branch] - 推送本地分支到远程仓库。

                    • 示例:git push origin feature
                    • git remote -v - 显示远程仓库信息。

                      • 示例:git remote -v

标签管理

  1. git tag - 列出所有标签。

    • 示例:git tag
    • git tag [tagname] - 创建标签。

      • 示例:git tag v1.0.0
      • git tag -d [tagname] - 删除标签。

        • 示例:git tag -d v1.0.0
        • git push origin --tags - 推送所有标签到远程仓库。

          • 示例:git push origin --tags
          • git checkout [tagname] - 切换到标签的版本。

            • 示例:git checkout v1.0.0

远程仓库管理

  1. git remote add [name] [url] - 添加远程仓库。

    • 示例:git remote add origin https://github.com/user/repo.git
    • git remote rename [old] [new] - 重命名远程仓库。

      • 示例:git remote rename origin upstream
      • git remote remove [name] - 删除远程仓库。

        • 示例:git remote remove upstream
        • git remote set-url [name] [url] - 设置远程仓库的 URL。

          • 示例:git remote set-url origin https://github.com/newuser/repo.git
          • git ls-remote [url] - 显示远程仓库的引用和哈希值。

            • 示例:git ls-remote https://github.com/user/repo.git

撤销和重置

  1. git reset [file] - 重置暂存区的文件。

    • 示例:git reset README.md
    • git reset --hard - 重置工作目录和暂存区到最后一次提交。

      • 示例:git reset --hard
      • git revert [commit] - 撤销指定的提交。

        • 示例:git revert 1234567
        • git clean -f - 清除未跟踪的文件。

          • 示例:git clean -f
          • git clean -fd - 清除未跟踪的文件和目录。

            • 示例:git clean -fd
            • git stash - 暂存工作目录的更改。

              • 示例:git stash
              • git stash pop - 恢复之前暂存的更改。

                • 示例:git stash pop
                • git stash list - 列出所有暂存的更改。

                  • 示例:git stash list
                  • git stash drop [stash] - 删除指定的暂存更改。

                    • 示例:git stash drop stash@{0}
                    • git reflog - 显示所有参考的日志。

                      • 示例:git reflog

子模块管理

  1. git submodule add [url] - 添加子模块。

    • 示例:git submodule add https://github.com/user/submodule.git
    • git submodule update --init --recursive - 初始化和更新所有子模块。

      • 示例:git submodule update --init --recursive
      • git submodule status - 显示子模块的状态。

        • 示例:git submodule status
        • git submodule deinit [path] - 取消初始化子模块。

          • 示例:git submodule deinit path/to/submodule
          • git submodule foreach [command] - 对所有子模块执行命令。

            • 示例:git submodule foreach git pull origin master

忽略文件

  1. git ignore - 列出全局忽略的文件。

    • 示例:git ignore
    • git config --global core.excludesfile ~/.gitignore_global - 设置全局忽略文件。

      • 示例:git config --global core.excludesfile ~/.gitignore_global
      • git add .gitignore - 将忽略文件添加到仓库。

        • 示例:git add .gitignore
        • git check-ignore [file] - 检查文件是否被忽略。

          • 示例:git check-ignore build/
          • git ls-files --others --ignored --exclude-standard - 列出所有被忽略的文件。

            • 示例:git ls-files --others --ignored --exclude-standard

交互式命令

  1. git add -i - 进入交互式添加模式。

    • 示例:git add -i
    • git commit -a - 自动暂存所有已跟踪的更改并提交。

      • 示例:git commit -a
      • git rebase -i [commit] - 交互式变基。

        • 示例:git rebase -i HEAD~3
        • git cherry-pick [commit] - 选择性地应用提交。

          • 示例:git cherry-pick 1234567
          • git bisect - 二分查找错误的提交。

            • 示例:git bisect start
            • git blame [file] - 显示文件每一行的最后提交者。

              • 示例:git blame README.md
              • git grep [pattern] - 在工作目录中搜索文本。

                • 示例:git grep "Hello World"
                • git gui - 打开 Git 的图形用户界面。

                  • 示例:git gui
                  • gitk - 打开 Git 的图形历史查看工具。

                    • 示例:gitk
                    • git mergetool - 使用图形工具解决合并冲突。

                      • 示例:git mergetool

配置和帮助

  1. git config --list - 列出所有 Git 配置。

    • 示例:git config --list
    • git config --global user.name "[name]" - 设置全局用户名。

      • 示例:git config --global user.name "John Doe"
      • git config --global user.email "[email]" - 设置全局用户邮箱。

        • 示例:git config --global user.email "john.doe@example.com"
        • git config --global color.ui auto - 启用颜色显示。

          • 示例:git config --global color.ui auto
          • git help [command] - 显示指定命令的帮助信息。

            • 示例:git help commit
            • git --version - 显示 Git 的版本。

              • 示例:git --version
              • git help config - 显示关于配置选项的帮助信息。

                • 示例:git help config
                • git help每一天 - 显示关于每一天命令的帮助信息。

                  • 示例:git help everyday
                  • git help glossary - 显示 Git 术语表。

                    • 示例:git help glossary
                    • git help tutorial - 显示 Git 教程。

                      • 示例:git help tutorial

工作流命令

  1. git flow init - 初始化一个 Git Flow 工作流。

    • 示例:git flow init
    • git flow feature start [feature] - 开始一个新的功能分支。

      • 示例:git flow feature start login
      • git flow feature finish [feature] - 完成一个功能分支。

        • 示例:git flow feature finish login
        • git flow release start [version] - 开始一个新的发布分支。

          • 示例:git flow release start 1.0.0
          • git flow release finish [version] - 完成一个发布分支。

            • 示例:git flow release finish 1.0.0
            • git flow hotfix start [hotfix] - 开始一个新的热修复分支。

              • 示例:git flow hotfix start 1.0.1
              • git flow hotfix finish [hotfix] - 完成一个热修复分支。

                • 示例:git flow hotfix finish 1.0.1
                • git flow support start [support] - 开始一个新的支持分支。

                  • 示例:git flow support start 1.0-stable
                  • git flow support finish [support] - 完成一个支持分支。

                    • 示例:git flow support finish 1.0-stable
                    • git flow version - 显示当前 Git Flow 版本。

                      • 示例:git flow version

子命令

  1. git clean - 清除工作目录中的未跟踪文件。

    • 示例:git clean
    • git describe - 显示最近的标签和提交的哈希值。

      • 示例:git describe
      • git fsck - 检查 Git 仓库的完整性。

        • 示例:git fsck
        • git gc - 清理无用的文件和优化仓库。

          • 示例:git gc
          • git prune - 移除引用的远程跟踪分支。

            • 示例:git prune
            • git repack - 重新打包仓库中的包文件。

              • 示例:git repack
              • git whatchanged - 显示仓库的变更日志。

                • 示例:git whatchanged
                • git worktree add - 添加一个新的工作树。

                  • 示例:git worktree add
                  • git worktree list - 列出所有工作树。

                    • 示例:git worktree list
                    • git worktree remove - 删除一个工作树。

                      • 示例:git worktree remove

脚本和钩子

  1. git init-db - 创建一个新的 Git 仓库。

    • 示例:git init-db
    • git get-tar-commit-id [file] - 获取 tar 文件的提交 ID。

      • 示例:git get-tar-commit-id archive.tar
      • git instaweb - 启动一个简单的 web 服务器。

        • 示例:git instaweb
        • git archive - 创建一个归档文件。

          • 示例:git archive
          • git bisect run [command] - 自动执行 bisect 测试。

            • 示例:git bisect run make
            • git cat-file - 显示 Git 对象的信息。

              • 示例:git cat-file
              • git check-attr - 检查文件属性。

                • 示例:git check-attr
                • git checkout-index - 从索引中检出文件。

                  • 示例:git checkout-index
                  • git commit-tree - 创建一个新的提交。

                    • 示例:git commit-tree
                    • git diff-files - 显示工作目录和索引的差异。

- 示例:`git diff-files`

请注意,这个列表并不完整,Git 有更多命令和选项,可以根据具体需求使用。这些命令覆盖了 Git 的基本使用,分支管理,标签管理,远程仓库管理,撤销和重置,子模块管理,忽略文件,交互式命令,配置和帮助,工作流命令,子命令,脚本和钩子等多个方面。

转载请注明来自码农世界,本文标题:《Git命令之江湖百晓生》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,89人围观)参与讨论

还没有评论,来说两句吧...

Top