欢迎光临
我们一直在努力

写.gitignore 真讨厌,让我们来用 gibo 吧!

我就是不想写 .gitignore 啊,你来打我呀。

记得和 @brambles 一起面向对象编程的时候,他对我使用 git 的习惯表示了不满!

我的习惯是在命令行下依次用 git add 加入文件,由于 oh-my-zsh 方便的 git 补全功能,这个过程一点都不麻烦,而且每次 add 一遍,心里也有数,所以也懒得写 gitignore 了。而他的习惯是 git add -a 加入所有当前的改动,于是在我刚建好新项目的时候,他第一次就用git add a命令把大量的文件给提交上来了。

在 @brambles 强烈数落我的懒惰的时候,我开始想办法找一个方便的 .gitignore 生成工具。于是,就尝试了这个工具 gibo。Github 地址是:

mac 的话,可以用 brew 来安装。

$ brew install gibo当然,也可以直接把项目 clone 下来然后在你的 .bashrc 或者 .zshrc 中修改你的 PATH 环境变量,windows 用户也可以在 Github 上找到适合你的安装方式。在安装好后,先来试试看效果吧:

$ gibo --versiongibo 2.1.0 by Simon Whitaker 使用方法 比如,你喜欢写 node 项目,那么就这么来:

$ gibo dump node > .gitignore然后你可以看到你的 .gitignore 就生成好了:

# Logslogs*.lognpm-debug.log*yarn-debug.log*yarn-error.log*# Runtime datapids*.pid*.seed*.pid.lock# Directory for instrumented libs generated by jscoverage/JSCoverlib-cov# Coverage directory used by tools like istanbulcoverage# nyc test coverage.nyc_output# Grunt intermediate storage (Creating plugins - Grunt: The JavaScript Task Runner).grunt# Bower dependency directory (Bower)bower_components# node-waf configuration.lock-wscript# Compiled binary addons (Node.js v10.7.0 Documentation)build/Release# Dependency directoriesnode_modules/jspm_packages/# TypeScript v1 declaration filestypings/# Optional npm cache directory.npm# Optional eslint cache.eslintcache# Optional REPL history.node_repl_history# Output of 'npm pack'*.tgz# Yarn Integrity file.yarn-integrity# dotenv environment variables file.env# parcel-bundler cache (Parcel).cache# next.js build output.next# nuxt.js build output.nuxt# vuepress build output.vuepress/dist# Serverless directories.serverless如果你想不覆盖原有的 .gitignore 的话,可以用 >> 来把输出加到原 gitignore 文件的末尾。

$ gibo dump node >> .gitignore当然,如果你不写前端,你也可以用gibo list命令查看你喜欢的语言,或者用gibo search  XXX来搜索。

$ gibo list=== Languages ===Actionscript        LithiumAda            LuaAgda            MagentoAndroid            MavenAppceleratorTitanium    MercuryAppEngine        MetaProgrammingSystemArchLinuxPackages    NanocAutotools        NimC++            NodeC            Objective-CCakePHP            OCamlCFWheels        OpaChefCookbook        OpenCartClojure            OracleFormsCMake            PackerCodeIgniter        PerlCommonLisp        Perl6Composer        PhalconConcrete5        PlayFrameworkCoq            PloneCraftCMS        PrestashopCUDA            ProcessingD            PureScriptDart            PythonDelphi            QooxdooDM            QtDrupal            REagle            RailsElisp            RhodesRhomobileElixir            ROSElm            RubyEPiServer        RustErlang            SassExpressionEngine    ScalaExtJs            SchemeFancy            SConsFinale            ScrivenerForceDotCom        SdccFortran            SeamGenFuelPHP            SketchUpGcov            SmalltalkGitBook            StellaGo            SugarCRMGodot            SwiftGradle            SymfonyGrails            SymphonyCMSGWT            TerraformHaskell            TeXIdris            TextpatternIGORPro            TurboGears2Java            Typo3Jboss            UmbracoJekyll            UnityJoomla            UnrealEngineJulia            VisualStudioKiCad            VVVVKohana            WafKotlin            WordPressLabVIEW            XojoLaravel            YeomanLeiningen        YiiLemonStand        ZendFrameworkLilypond        Zephir=== Global ===Anjuta            MatlabAnsible            MercurialArchives        MicrosoftOfficeBackup            ModelSimBazaar            MomenticsBricxCC            MonoDevelopCalabash        NetBeansCloud9            NinjaCodeKit            NotepadPPCVS            OttoDartEditor        PatchDreamweaver        RedcarDropbox            RedisEclipse            SBTEiffelStudio        SlickEditEmacs            StataEnsime            SublimeTextEspresso        SVNFlexBuilder        SynopsysVCSGPG            TagsJDeveloper        TextMateJEnv            TortoiseGitJetBrains        VagrantKate            VimKDevelop4        VirtualEnvLazarus            VisualStudioCodeLibreOffice        WebMethodsLinux            WindowsLyX            XcodemacOS            XilinxISE自动补全插件 恩,我是一个很懒的人,喜欢自动补全,所以我还配置了 zsh 上的自动补全,具体方法是:

$ mkdir ~/.oh-my-zsh/custom/plugins/gibo$ cd mkdir ~/.oh-my-zsh/custom/plugins/gibo$ wget -completions/gibo-completion.zsh接着执行source ~/.zshrc或者新开一个终端就可以用带自动补全的 gibo 了。

实际上,安装 gibo 会自动在你的主目录下创建 .gitignore-boilerplates 目录,等到你想生成新 gitignore 文件时,就会在里面找到对应的模板文件。当然,你也可以在 Github 官方的 github/gitignore仓库中找到你想要的 gitignore 模板文件下载下来。

与之相似的工具还有 gitignore.io(网站名就是这个,超好记),你可以在里面找到你想要的 gitignore 文件并下载下来,如果你不嫌打字麻烦的话, 直接用公开的 api 即可。

本文来自不喜欢重复写工作的 @江小傑 大懒人,想和我们烈焰魔法社成员一起搞基,微信后台回复:QQ群,来我们的烈焰魔法讨论群吧。

赞(65)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址