git gc命令运行得非常快,并清理了本地仓库中所有不必要的文件。由于其速度和效率,它是最佳的优化方法之一。您也可以使用–aggressive选项来增加优化。但是,这将需要更多时间才能完成。
28、存档本地仓库
您可以使用git archive命令轻松地归档本地仓库。它允许开发人员将他们的项目安全地存储在某个地方。您可以通过网络传输此存档,也可以将其存储在Linux文件系统上。
linuxidc@ubuntu:~/www.linuxidc.com$ git archive --output=test --format=tar master
上面的命令将仓库存储在名为test的tar文件中。如果需要,可以省略–format选项。在这种情况下,git将尝试从名称中推断出存档格式。此命令还有更多选项可用。
29、搜索模式
在大型项目中工作时,通常需要搜索其他内容。幸运的是,git grep命令使我们能够在仓库中搜索特定的模式,并使开发更加容易。它的工作方式与标准Linux grep命令非常相似,具有一些特定于git的功能。
linuxidc@ubuntu:~/www.linuxidc.com$ git grep -iw 'import' master
此命令在我们的master分支中显示所有包含“ import”的行。它以不区分大小写的方式搜索。以下命令将在所有提交和分支中搜索给定的模式。
linuxidc@ubuntu:~/www.linuxidc.com$ git grep 'import' $(git rev-list --all)
如果您正在协作大型项目,这是最好的git命令之一。
30、管理工作树
开发人员可以在git中使用多个工作树。当签出多个项目分支时,这很有用。检查以下git命令,以了解如何在git中管理工作树。
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree list
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree add new-branch
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree remove new-branch
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree prune
您可以使用第一个命令显示当前的工作树。使用第二个命令添加一个新的“链接的工作树”,并使用第三个命令删除该树。最后一条命令允许您修剪工作树信息。
31、删除未跟踪的对象
有时您可能想删除不再由git跟踪的对象。Git提供了一个简单的命令来执行此操作。git prune命令只会从对象数据库中删除未跟踪的对象,而不会删除引用本身。
linuxidc@ubuntu:~/www.linuxidc.com$ git prune --dry-run
linuxidc@ubuntu:~/www.linuxidc.com$ git prune --verbose --progress
第一条命令不会删除任何内容,只会显示修剪后会删除的对象。第二条命令在删除期间提供详细的输出以及进度报告。您可以使用prune命令和git gc命令一起优化仓库。
32、打包未归档文件
在git中,包是单个压缩对象的集合。Git对这些对象应用增量压缩并将其存储在单个文件中。它们用于减少Linux文件系统或镜像系统上的负载。git repack命令允许用户创建新的包,这些包由不位于现有包内的对象组成。
linuxidc@ubuntu:~/www.linuxidc.com$ git repack
您可以将此命令与gic gc和git prune一起使用,以优化git仓库。
33、计算解包的对象数量
除非解压缩的对象太多,否则不应经常重新打包对象。git count-objects命令是一种简单但有用的方法,用于查看解包对象的数量及其消耗的磁盘空间。
linuxidc@ubuntu:~/www.linuxidc.com$ git count-objects
使用上面的命令来确定是否应该重新打包git。您可以添加–verbose标志以获取详细信息,还可以添加–人类可读标志以常规方式显示尺寸。
34、验证对象数据库
Git最初是作为文件系统开发的。它具有一个称为fsck的有用命令,其作用与Unix fsck非常相似。您可以使用此命令来验证连接性并执行对象的完整性检查。
linuxidc@ubuntu:~/www.linuxidc.com$ git fsck
运行以上命令将显示在对象数据库中找到的所有损坏的对象。它是查找丢失或不良对象的最有用的git命令之一。
35、显示每次提交的更改
git whatchanged命令是我们最喜欢的git子命令中的另一个。这是一种查看每个git commit引入到我们项目的更改的简单但有效的方法。
linuxidc@ubuntu:~/www.linuxidc.com$ git whatchanged
此git命令将使用提交日志和diff输出显示信息。总的来说,它的操作与git log命令非常相似。
36、汇总日志信息
您还可以使用git shortlog命令查看历史记录。该命令的主要思想是将输出包含在发行公告中。快速浏览以下命令以了解其工作原理。
linuxidc@ubuntu:~/www.linuxidc.com$ git shortlog
linuxidc@ubuntu:~/www.linuxidc.com$ git shortlog --email --summary
添加–email选项将显示每个作者的电子邮件。该-summary选项会抑制通常输出,只会显示提交的数目。
37、管理配置选项
git有大量可用的配置选项。您可以使用git config命令查询,设置或替换各种选项。可以对特定仓库和全局配置进行更改。
linuxidc@ubuntu:~/www.linuxidc.com$ git config --list
上面的命令将在git中列出所有当前设置的配置选项。您可以轻松添加或删除新选项。遵循config子命令的帮助页面以了解如何执行这些任务。
linuxidc@ubuntu:~/www.linuxidc.com$ git config --help
38、Git帮助