Git命令大全

Git命令大全

设置与配置

  • git config 读取和写入配置文件
  • git help 查看帮助文档
git help config

获取与创建项目

  • git init 将一个目录装变成一个Git仓库,初始化仓库。
  • git clone 封装了其他几个命令。它创建了一个新目录,切换到新的目录,然后 git init 来初始化一个空的 Git 仓库, 然后为你指定的 URL 添加一个(默认名称为 origin 的)远程仓库(git remote add),再针对远程仓库执行 git fetch,最后通过 git checkout 将远程仓库的最新提交检出到本地的工作目录。

快照基础

  • git add 将内容从工作目录添加到缓存区,用来确定下次提交时快照的样子。
  • git status 显示工作区及暂存区域中不同状态的文件。
  • git diff 查看分支的差异,查看工作环境与你的暂存区的差异。
  • git diff 查看暂存区域与你最后提交之间的差异。
  • git diff master branchB 比较两个提交记录的差异。
  • git commit 将所有通过git add咱村的文件内容在数据库中创建一个持久的快照,然后将当前分支上的分支指针移到其之上。
  • git reset 根据你传递给动作的参数来执行撤销操作。
  • git rm 从工作区或者缓存区移除文件的命令。
  • git mv 在新文件上执行git add 在老文件上执行 git rm
  • git clean 从工作中移除不想要的文件

分支与合并

  • git branch 分支管理工具。可以列出所有的分支。创建新分支、删除分支及重命名分支。 -v查看所有分支 git log --oneline --decorate --graph --all查看分支信息
  • git checkout 切换分支,或者检出内容到工作目录。
  • git merge 合并一个或者多个分支到你已经检出的分支中,然后将当前指针移动到合并结果上。
  • git mergetool 启动一个外部的合并帮助工具。
  • git log 展示一个项目的可达历史记录,从最近的提交快照起。
  • git stash 临时保存一些还没有提交的工作。便于在分支上不需要提交未完成的工作就可以清理工作目录。
  • git tag 为代码历史记录中的某一个点指定一个永久的书签。

项目分享与更新

  • git fetch 将远程仓库中有但是在当前仓库中没有的信息拉取下来存储到本地数据库中
  • git pull 基本上是git fetchgit merge 命令的结合体 ,Git 从你指定的远程仓库中抓取内容,然后马上尝试将其合并进你所在的分支中。
  • git push 与另一个仓库通信,计算本地数据库与远程数据库的差异,然后将差异推送到另一个仓库。他需要有另一个仓库的写权限,因此这通常是需要验证的。
  • git remote 远程仓库的管理工具。允许你讲一个长的URL保存成一个简写的句柄。git remote add 。
  • git archive 创建项目一个指定快照的归档文件。
  • git submodule 管理一个仓库的其他外部仓库。可以被用在库或者其他类型的共享资源上。 几个子命令(add、update、sync…)。

检查与比较

  • git show 以一种简单的人类可读得方式来显示一个Git对象,一般用来显示一个标签或一个提交的信息。
  • git shortlog 用来归纳git log 的输出命令。展示一个根据作者分组的提交记录的概括性信息
  • git describe 接受任何可以解析成一个提交的东西,然后生成一个人类可读的字符串且不可变。

调试

  • git bisect 通过自动进行一个二分查找来找到哪一个特定的提交是 导致bug或者问题的第一个提交。
  • git blame 标注任何文件的行,指出文件的每一行的最后的变更的提交及谁是哪一个提交的作者。
  • git grep 可以帮助在源代码中,甚至是你项目的老版本中的任意文件中查找任何字符串或者正则表达式。

补丁

  • git cherry-pick 用来获得在单个提交中引入的变更,然后尝试作为一个新的提交引入到你当前分支上。从一个分支单独一个或两个提交而不是合并整个分支的所有变更是非常有用的。
  • git rebase (变基)基本是一个自动化的 cherry-pick 命令。它计算出一系列的提交,然后再以他们在其他地方以同样的顺序一个一个的cherry-pick出它们。
  • git revert 本质上是一个逆向的 git cherr-pick 操作。他将你提交的变更以完全相反的方式应用到一个新创建的提交中,本质上就式撤销或者倒转。

邮件

  • git apply 通过git diff 或者使用 GUN diff命令创建一个补丁。
  • git am 应用来自邮箱的补丁
  • git format-patch 以mbox的格式生成一系列的补丁以便你可以发送到一个邮箱列表中。
  • git imap-send 讲一个由git format-patch生成的邮箱上传至IMAP草稿文件夹。
  • git send-email 用来通过邮箱发送那些使用 git format-patch生成的补丁。
  • git request-pull 生成一个可以通过邮件发送给某个人的示例信息体。

外部系统

  • git svn 可以使Git作为一个客户端来与Subversion版本控制系统通信。
  • git fast-import 对于其他版本控制系统或者其他任何格式的导入,你可以使用 git fast-import 快速的将其他格式映射到Git 可以轻松记录格式。

管理

  • git gc 在你的仓库中执行“garbage collection” ,删除数据库中不需要的文件和将其他文件打包成一种更有效的格式。这个命令一般在背后为你工作。
  • git fsck 用于检查内部数据库的问题或者不一致性。
  • git reflog 命令分析你所有分支头指针的日志来查找出你在重写历史上可能丢失的提交。
  • git filter-branch 用来根据某些规则来重写大量的提交记录,例如从任何地方删除文件,或者通过过滤一个仓库中的一个单独的子目录来提取出一个项目。

你可能感兴趣的:(git)