{"id":351799,"date":"2021-10-12T15:18:50","date_gmt":"2021-10-12T12:18:50","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-set-up-gitignore-as-a-whitelist-cloudsavvy-it\/"},"modified":"2021-10-12T15:18:50","modified_gmt":"2021-10-12T12:18:50","slug":"how-to-set-up-gitignore-as-a-whitelist-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-set-up-gitignore-as-a-whitelist-cloudsavvy-it\/","title":{"rendered":"#How to Set Up .gitignore As a Whitelist \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a3373a986695\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a3373a986695\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-set-up-gitignore-as-a-whitelist-cloudsavvy-it\/#Using_gitignore_as_a_Whitelist\" >Using .gitignore as a Whitelist<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-set-up-gitignore-as-a-whitelist-cloudsavvy-it\/#Debugging_gitignore\" >Debugging .gitignore<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Set Up .gitignore As a Whitelist \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-14290\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/4d72a7db.png?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/4d72a7db.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/4d72a7db.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1200\" height=\"675\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The .gitignore file is a crucial part of any Git repository; it prevents unwanted files from being tracked and shared in source control. Usually, you want to ignore certain files and folders, but sometimes it\u2019s easier to do it the other way around.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Using_gitignore_as_a_Whitelist\"><\/span>Using .gitignore as a Whitelist<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Regular .gitignore usage is simple\u2014give it a filename or matching wildcard, and that file will be blocked. When you use it as a whitelist though, it becomes a bit more complicated.<\/p>\n<p>First, you\u2019ll need the two following directives at the top of the file, which\u00a0block everything by default with an all-encompassing wildcard\u00a0<code>*<\/code>:<\/p>\n<pre>*&#13;\n!*\/<\/pre>\n<p>The second line is needed because whitelisting isn\u2019t as simple as blocking. Because of the way Git handles these files, if it sees a directory is blocked, it won\u2019t even\u00a0<em>try<\/em> to check anything in the directory to see if it was unblocked later. It simply skips it and ignores all rules inside that directory.<\/p>\n<p>So, the second line here tells Git to specifically check subfolders. The exclamation point <code>!<\/code>\u00a0is used to turn the rule into a whitelist. It matches all directories, but since it doesn\u2019t match anything inside those directories, Git will not track any files just yet with just these two lines alone.<\/p>\n<p>This allows setups like the following:<\/p>\n<pre>*&#13;\n!*\/&#13;\n&#13;\n# track this file&#13;\n!.gitignore&#13;\n&#13;\n# whitelist everything in .\/config\/&#13;\n!config\/<\/pre>\n<p>The <code>.gitignore<\/code>\u00a0file itself is in the main directory, so it can just be whitelisted normally. Whitelisting directories simply requires a trailing slash, and Git will return to normal in that directory, overriding the previous all-blocking wildcard.<\/p>\n<p>If you want to explicitely whitelist a directory and all its contents, you must use the double wildcard,\u00a0<code>!config\/**<\/code>. A single wildcard would not propagate into subdirectories recursively. This will override all other blocking rules.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Debugging_gitignore\"><\/span>Debugging .gitignore<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you\u2019re having issues with your configuration, you can debug it with the <code>check-ignore<\/code> Git command:<\/p>\n<pre>git check-ignore -v testfile.json<\/pre>\n<\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/14444\/how-to-set-up-gitignore-as-a-whitelist\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Set Up .gitignore As a Whitelist \u2013 CloudSavvy IT&#8221; The .gitignore file is a crucial part of any Git repository; it prevents unwanted files from being tracked and shared in source control. Usually, you want to ignore certain files and folders, but sometimes it\u2019s easier to do it the other way around. Using&#8230;<\/p>\n","protected":false},"author":1,"featured_media":351800,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/4d72a7db.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-351799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/351799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=351799"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/351799\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/351800"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=351799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=351799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=351799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}