<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>I'am sane!</title><description>...all about IT, life, Web... with humour, sometimes without.</description><managingEditor>noreply@blogger.com (Adv User)</managingEditor><pubDate>Wed, 14 Oct 2026 04:10:10 +0300</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">233</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://i-sane.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>...all about IT, life, Web... with humour, sometimes without.</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>Is it important to make docker compose down before docker compose up -d and docker restart </title><link>http://i-sane.blogspot.com/2026/10/is-it-important-to-make-docker-compose.html</link><category>compose</category><category>docker</category><category>docker compose down</category><category>docker compose restart</category><category>docker compose up -d</category><category>down</category><category>restart</category><category>up</category><author>noreply@blogger.com (Adv User)</author><pubDate>Thu, 1 Oct 2026 03:37:39 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-3710415189955580849</guid><description>&lt;p&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt6egjYji-gHh0BWwdMeXXJTJMsKSASRm_A9S1UvAijWj5we9gV0PhQPrQqbSIw9MF0dN2WDgEUjnV-ntIjfiwdS_tKhUa5Qzj1RdcxlAOatEDPj16wkk1cPxlbcanVpl_4cBd2K0a-ol3wikRPJk3m6D4YmeH4eGBIjyee2u6f869NsZk9KQeTdWFhWfa/s1532/Screenshot%202026-09-30%20204935.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" data-original-height="920" data-original-width="1532" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt6egjYji-gHh0BWwdMeXXJTJMsKSASRm_A9S1UvAijWj5we9gV0PhQPrQqbSIw9MF0dN2WDgEUjnV-ntIjfiwdS_tKhUa5Qzj1RdcxlAOatEDPj16wkk1cPxlbcanVpl_4cBd2K0a-ol3wikRPJk3m6D4YmeH4eGBIjyee2u6f869NsZk9KQeTdWFhWfa/w640-h384/Screenshot%202026-09-30%20204935.png" width="640" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1 style="text-align: center;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Is it important to make docker compose down before docker compose up -d and docker restart&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Generally, &lt;b&gt;&lt;span style="color: red;"&gt;NO&lt;/span&gt;&lt;/b&gt;, it is not necessary or even recommended to
run docker compose down before docker compose up -d. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;docker compose up is designed to be declarative and
intelligent; it compares your current running state with your
docker-compose.yml file and only makes the changes necessary to match them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Why You Usually Don't Need down&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;•
Automatic Updates: If you change a configuration (like environment variables or
port mappings) and run up -d again, Docker will automatically stop and recreate
only the containers that were affected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;• Less
Downtime: Using up alone is significantly faster and results in less downtime
because it doesn't stop or remove containers that don't need changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;•
Resource Preservation: docker compose down removes networks and containers
entirely. Re-running up forces everything to be rebuilt and reconnected from
scratch.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;When You Should Use down&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;• Full
Reset: If you want a completely clean slate, including removing internal
networks and "anonymous" volumes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;•
Removing Orphans: If you removed a service from your .yml file, down will
ensure its old container is deleted (though you can also use docker compose up
-d --remove-orphans).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;•
Database Re-initialization: If you need to wipe out local data stored in
non-persistent volumes to force a fresh setup.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Pro Tips for up -d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;• Forcing
a Rebuild: &lt;b&gt;If you updated your code/Dockerfile but didn't change the .yml,&lt;/b&gt; use
docker &lt;b&gt;&lt;span style="color: #6aa84f;"&gt;compose up -d --build&lt;/span&gt;&lt;/b&gt; to force a new image creation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Forcing Recreations: Use docker &lt;b&gt;&lt;span style="color: #6aa84f;"&gt;compose up -d
--force-recreate&lt;/span&gt;&lt;/b&gt; &lt;b&gt;to restart everything even if no configurations have changed.&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;No. docker compose restart is &lt;b&gt;not the same&lt;/b&gt; as running
docker compose down followed by docker compose up -d. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;

&lt;hr align="center" size="1" width="100%" /&gt;

&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Core Differences&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;The two commands operate completely differently regarding &lt;b&gt;configuration
updates&lt;/b&gt;, &lt;b&gt;container lifecycle&lt;/b&gt;, and &lt;b&gt;network resources&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; mso-yfti-tbllook: 1184; width: 100%;"&gt;
 &lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;
  &lt;td style="border: 1pt solid black; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Feature &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid black; mso-border-left-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;docker compose restart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid black; mso-border-left-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;docker compose down &amp;amp;&amp;amp; docker compose up -d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="mso-yfti-irow: 1;"&gt;
  &lt;td style="border-top: none; border: 1pt solid black; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;How it Works&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Stops and starts the existing container process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Destroys the container and builds a new one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="mso-yfti-irow: 2;"&gt;
  &lt;td style="border-top: none; border: 1pt solid black; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Picks up compose.yml changes?&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;No.&lt;/b&gt; Changes to environment variables, ports, or
  volumes are ignored.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Yes.&lt;/b&gt; Re-reads the file and applies all changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="mso-yfti-irow: 3;"&gt;
  &lt;td style="border-top: none; border: 1pt solid black; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Resets Filesystem?&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;No.&lt;/b&gt; Ephemeral container data is preserved since it
  is the same container.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Yes.&lt;/b&gt; Destroys the filesystem; resets to the base
  image state (except mounted volumes).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="mso-yfti-irow: 4;"&gt;
  &lt;td style="border-top: none; border: 1pt solid black; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Destroys Networks?&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;No.&lt;/b&gt; Keeps the internal Docker network intact.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Yes.&lt;/b&gt; Removes the network entirely and recreates it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="mso-yfti-irow: 5; mso-yfti-lastrow: yes;"&gt;
  &lt;td style="border-top: none; border: 1pt solid black; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;Builds new Dockerfile code?&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;No.&lt;/b&gt; Restarts using the exact same image currently
  in use.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid black 1.0pt; border-color: currentcolor black black currentcolor; border-left: none; border-right: solid black 1.0pt; border-style: none solid solid none; border-top: none; border-width: medium 1pt 1pt medium; mso-border-left-alt: solid black 1.0pt; mso-border-top-alt: solid black 1.0pt; padding: 5pt;" valign="top"&gt;
  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&lt;b&gt;No.&lt;/b&gt; Unless you pass the --build flag to up.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;

&lt;hr align="center" size="1" width="100%" /&gt;

&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Deep Dive into Each Command&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;1. docker compose restart &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;ul style="margin-top: 0cm;" type="disc"&gt;
 &lt;li class="MsoNormal" style="mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Use
     this for a &lt;b&gt;quick process bounce&lt;/b&gt; when you do not need to change how
     the container is built.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class="MsoNormal" style="mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;It
     simply stops the running processes inside the container and immediately
     starts them up again.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class="MsoNormal" style="mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;It
     saves time because it skips container creation and network configuration. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;2. docker compose down &amp;amp;&amp;amp; docker compose up -d &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;ul style="margin-top: 0cm;" type="disc"&gt;
 &lt;li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Use
     this for a &lt;b&gt;complete infrastructure reset&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;It
     completely removes the containers, networks, and internal Docker caches.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;It
     rebuilds everything fresh based on the current state of your compose.yml
     file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;

&lt;hr align="center" size="1" width="100%" /&gt;

&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;The Recommended Alternative: docker compose up -d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;If you made changes to your compose.yml or your underlying
image and want to restart to apply them, you do &lt;b&gt;not&lt;/b&gt; need to run down. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Instead, simply run:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;docker compose up -d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul style="margin-top: 0cm;" type="disc"&gt;
 &lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;Docker
     Compose will automatically compare your current configuration against the
     running containers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;It
     will &lt;b&gt;only recreate containers that have changed&lt;/b&gt;, while leaving
     untouched services running uninterrupted.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
 &lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; tab-stops: list 36.0pt;"&gt;&lt;span style="font-family: Roboto Condensed;"&gt;To
     force recreate the container even if the configuration did not change,
     use: docker compose up -d --force-recreate.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt6egjYji-gHh0BWwdMeXXJTJMsKSASRm_A9S1UvAijWj5we9gV0PhQPrQqbSIw9MF0dN2WDgEUjnV-ntIjfiwdS_tKhUa5Qzj1RdcxlAOatEDPj16wkk1cPxlbcanVpl_4cBd2K0a-ol3wikRPJk3m6D4YmeH4eGBIjyee2u6f869NsZk9KQeTdWFhWfa/s72-w640-h384-c/Screenshot%202026-09-30%20204935.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Right reset branch (clean history commits after some specific commit)</title><link>http://i-sane.blogspot.com/2026/08/right-reset-branch-clean-history.html</link><category>branch</category><category>force</category><category>Git</category><category>rest</category><author>noreply@blogger.com (Adv User)</author><pubDate>Thu, 27 Aug 2026 21:01:13 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-8747335358177586537</guid><description>&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;b&gt;git reset&amp;nbsp;&lt;/b&gt;--&lt;b&gt;hard &amp;lt;SHA1&amp;gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;b&gt;git push origin &amp;lt;branch-name&amp;gt; --force-with-lease&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;or just &lt;b&gt;git push --force-with-lease&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;--force-with-lease&lt;/b&gt;&lt;span style="font-family: Roboto Condensed;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Roboto;"&gt;--&amp;gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Roboto Condensed;"&gt; don't let us overwrite somebody's else dev's commits&lt;/span&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to recover all files in folder from specific branch</title><link>http://i-sane.blogspot.com/2026/07/how-to-recover-all-files-in-folder-from.html</link><category>files</category><category>folder</category><category>Git</category><category>recover</category><category>restore</category><author>noreply@blogger.com (Adv User)</author><pubDate>Tue, 21 Jul 2026 17:27:41 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-5358130029735323495</guid><description>&lt;h1 style="text-align: left;"&gt;&lt;span style="font-family: Google Sans, Arial, sans-serif;"&gt;How to recover all files in folder from specific branch&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;span data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-subtree="aimfl,mfl" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;To recover all files in a folder from a specific branch to your current working tree, use the &lt;/span&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_j" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;git checkout&lt;/code&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt; or &lt;/span&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_k" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;git restore&lt;/code&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt; command, specifying the branch name and the path to the folder.&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAcQAA" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="XD1Ypf_t" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 12px 0px 16px;"&gt;Run this command from your terminal:&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAgQAA" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAICBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAgQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="XD1Ypf_z" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_10" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git checkout &lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;&amp;lt;branch-name&amp;gt;&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; -- &lt;/span&gt;&lt;span style="color: #6aa84f;"&gt;&amp;lt;folder-path&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAoQAA" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAIChAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAoQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="XD1Ypf_16" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;For a safer, modern alternative (available in Git 2.23+), you can use &lt;span class="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="mouseenter:&amp;amp;XD1Ypf_17|WOQqYb;mouseleave:&amp;amp;XD1Ypf_17|Tx5Rb;focusin:&amp;amp;XD1Ypf_17|mrwrPd;focusout:&amp;amp;XD1Ypf_17|mFndSc;pointerdown:&amp;amp;XD1Ypf_17|FEiYhc;click:&amp;amp;XD1Ypf_17|C6aVhd;" jscontroller="KMhGd#Mx1qPe" jsuid="XD1Ypf_17" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;a class="H23r4e" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: underline 1px rgb(26, 13, 171); border-bottom: 0px rgb(26, 13, 171);" data-hveid="CAIIAAgACAoQAg" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qy_kOegoIAggACAAIChAC" href="https://git-scm.com/docs/git-restore" ping="/url?sa=t&amp;amp;source=web&amp;amp;rct=j&amp;amp;url=https://git-scm.com/docs/git-restore&amp;amp;ved=2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qy_kOegoIAggACAAIChAC&amp;amp;opi=89978449" rel="nofollow" style="border-bottom: 0px rgb(26, 13, 171); margin: 0px; text-decoration: underline 1px rgb(26, 13, 171);" target="_blank"&gt;Git Restore Documentation&lt;/a&gt;&lt;!--TgQPHd||[[&amp;quot;https://git-scm.com/docs/git-restore&amp;quot;,null,null,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[{&amp;quot;1218&amp;quot;:[16]}]],16,null,&amp;quot;git-restore Documentation - Git&amp;quot;,&amp;quot;SYNOPSIS. git restore [] [ --source\u003d ] [ --staged ] [ --worktree ] [ -- ] … git restore [] [ --source\u003d ] [ --staged ] [ --worktree ] --pathspec-from-file\u003d [ --pathspec-file-nul ] git restore ( -p | --patch ) [] [ --source\u003d ] [ --staged ] [ --worktree ] [ -- ] […] DESCRIPTION. Restore specified paths in the working tree with some contents from a restore source. If a path is tracked but does not exist in the restore source, it will be removed to match the source. The command can also be used to restore the content in the index with --staged , or restore both the working tree and the index with --staged --worktree . By default, if --staged is given, the contents are restored from HEAD , otherwise from the index. Use --source to restore from a different commit. See \&amp;quot;Reset, restore and revert\&amp;quot; in git[1] for the differences between the three commands. OPTIONS. -s --source\u003d Restore the working tree files with the content from the given tree. It is common to specify the source tree by naming a commit, branch or tag associated with it. If not specified, the contents are restored from HEAD if --staged is given, otherwise from the index. As a special case, you may use \&amp;quot; ...&amp;quot;,null,&amp;quot;Git&amp;quot;,&amp;quot;https://encrypted-tbn1.gstatic.com/faviconV2?url\u003dhttps://git-scm.com\u0026client\u003dAIM\u0026size\u003d128\u0026type\u003dFAVICON\u0026fallback_opts\u003dTYPE,SIZE,URL&amp;quot;,[[1784641736574509,137629294,3457260655],null,null,null,null,[[2,0,0,9]]],null,&amp;quot;e0877193-5a00-43fc-a08a-0d15211418b0&amp;quot;]]--&gt;&lt;/span&gt;:&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAsQAA" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAICxAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAsQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="XD1Ypf_1d" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_1e" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git restore &lt;/span&gt;&lt;span style="color: #800180;"&gt;--source&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;=&lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;&amp;lt;branch-name&amp;gt;&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; &lt;/span&gt;&lt;span style="color: #800180;"&gt;--staged&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; &lt;/span&gt;&lt;span style="color: #800180;"&gt;--worktree&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; -- &lt;/span&gt;&lt;span style="color: #6aa84f;"&gt;&amp;lt;folder-path&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;XD1Ypf_1k|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="XD1Ypf_1k" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACAwQAA" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAIDBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="XD1Ypf_1l" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;How It Works&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QAA" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Q-7AUegoIAggACAAIDxAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="XD1Ypf_1m" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QAQ" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAIDxAB" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QAg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="XD1Ypf_1n" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="XD1Ypf_1o" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="XD1Ypf_1p" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_1q" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&amp;lt;branch-name&amp;gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;: The name of the branch containing the files you want to recover.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QAw" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAIDxAD" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QBA" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="XD1Ypf_1r" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="XD1Ypf_1s" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="XD1Ypf_1t" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_1u" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&amp;lt;folder-path&amp;gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;: The relative path to the folder (e.g., &lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_1v" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;src/components/&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;).&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QBQ" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAIDxAF" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QBg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="XD1Ypf_1w" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="XD1Ypf_1x" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="XD1Ypf_1y" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;The double dash (&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="XD1Ypf_1z" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;--&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;)&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;: Tells Git to treat everything after it as a file or directory path, rather than a branch name.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QBw" data-ved="2ahUKEwitjIrG9OOVAxVuDjQIHW-cEc4Qi4wTegoIAggACAAIDxAH" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgACA8QCA" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="XD1Ypf_20" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="iNqyIf" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="KdQfFc#d5Qebf" jsuid="XD1Ypf_21" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;Once the command is run, the files will be placed into your working directory, staged, and ready to be committed&lt;/span&gt;&lt;/li&gt;&lt;/div&gt;&lt;/ul&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to compare 2 commits in git</title><link>http://i-sane.blogspot.com/2026/07/how-to-compare-2-commits-in-git.html</link><category>commits</category><category>Comparison</category><category>diff</category><category>Git</category><category>types</category><author>noreply@blogger.com (Adv User)</author><pubDate>Sat, 11 Jul 2026 10:04:56 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-8051358389137738556</guid><description>&lt;p&gt;&lt;/p&gt;&lt;h1 style="text-align: left;"&gt;&lt;span style="font-family: Roboto;"&gt;How to compare 2 commits in git&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;&lt;span data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-subtree="aimfl,mfl" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 0px;"&gt;&lt;span style="font-family: Roboto;"&gt;To compare two commits in Git, you use the&lt;/span&gt; &lt;/span&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_j" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff&lt;/span&gt;&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="font-size: 16px;"&gt; c&lt;span style="font-family: Roboto;"&gt;ommand followed by the commit identifiers.&lt;/span&gt;&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="font-family: Roboto; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;weXfG_s|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="weXfG_s" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="weXfG_t" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;Compare via Command Line&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwjIjubYhMqVAxX-hIkEHWsPFfQQi4wTegoIAggACAMICBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgDCAgQAQ" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwjIjubYhMqVAxX-hIkEHWsPFfQQ-7AUegoIAggACAMICBAB" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="weXfG_u" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgDCAgQAg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="weXfG_v" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="weXfG_w" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="weXfG_x" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Detailed code changes&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;: Run &lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_y" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff &amp;lt;commit1&amp;gt; &amp;lt;commit2&amp;gt;&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: #2b00fe;"&gt; &lt;/span&gt;to see line-by-line differences between two commits.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgDCAgQAw" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="weXfG_z" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="weXfG_10" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="weXfG_11" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;High-level summary&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;: Run &lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_12" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff --stat &amp;lt;commit1&amp;gt; &amp;lt;commit2&amp;gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt; to view a list of changed files and line counts.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgDCAgQBA" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="weXfG_13" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="weXfG_14" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="weXfG_15" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Single file comparison&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;: Run&lt;span style="color: #2b00fe;"&gt; &lt;/span&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_16" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff &amp;lt;commit1&amp;gt; &amp;lt;commit2&amp;gt; -- &amp;lt;path/to/file&amp;gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt; to restrict the comparison to one specific file.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd||[]--&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwjIjubYhMqVAxX-hIkEHWsPFfQQi4wTegoIAggACAMICxAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgDCAsQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="weXfG_1g" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;em class="eujQNb" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="yHWXO#Mkm8ud" jsuid="weXfG_1h" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;Note: You can use full commit hashes, short 7-character hashes, or reference pointers like &lt;span style="color: #800180;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_1i" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;HEAD&lt;!--TgQPHd||[]--&gt;&lt;/code&gt; &lt;/span&gt;and &lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_1j" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #800180;"&gt;HEAD~1&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;.&lt;/em&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;weXfG_1r|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="weXfG_1r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwjIjubYhMqVAxX-hIkEHWsPFfQQi4wTegoIAggACAMIDBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="weXfG_1s" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;Understanding Comparison Types&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;weXfG_1t|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="weXfG_1t" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwjIjubYhMqVAxX-hIkEHWsPFfQQi4wTegoIAggACAMIDRAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="Fv6NCb" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgDCA0QAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwjIjubYhMqVAxX-hIkEHWsPFfQQ-q4QegoIAggACAMIDRAB" jsaction="rcuQ6b:&amp;amp;weXfG_1u|npT2md" jscontroller="kbUand#UYOFMe" jsuid="weXfG_1u" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 12px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;!--TgQPHd||[]--&gt;&lt;!--TgQPHd||[]--&gt;&lt;table class="NRefec" data-animation-nesting="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 0px;"&gt;&lt;tbody data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="weXfG_1v" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="weXfG_1w" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Notation Syntax&lt;!--TgQPHd||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="weXfG_1x" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Comparison Logic&lt;!--TgQPHd||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="weXfG_1y" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Best Used For&lt;!--TgQPHd||[]--&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="weXfG_1z" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_20" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_21" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff commit1 commit2&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_22" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Compares the exact states of the two snapshots directly.&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_23" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Comparing arbitrary points in history.&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="weXfG_24" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_25" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_26" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff commit1&lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;&lt;b&gt;..&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;commit2&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_27" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Identical to using a space; compares the tips of both commits directly.&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_28" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Standard branch-to-branch or commit comparisons.&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="weXfG_29" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_2a" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;&lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_2b" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git diff commit1&lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;&lt;b&gt;...&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;commit2&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_2c" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;Compares the common ancestor of both commits with &lt;code class="KDcb0c" data-complete="true" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="weXfG_2d" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;commit2&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;.&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="weXfG_2e" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;Seeing only changes introduced by a feature branch, ignoring target updates.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to list only commits which was made after branch was splitted(checkouted)</title><link>http://i-sane.blogspot.com/2026/07/how-to-list-only-commits-which-was-made.html</link><category>after splitted</category><category>checkouted</category><category>commits</category><category>Git</category><category>log</category><category>only</category><author>noreply@blogger.com (Adv User)</author><pubDate>Sat, 11 Jul 2026 10:02:50 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-442511840738255840</guid><description>&lt;p&gt;&lt;span data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-subtree="aimfl,mfl" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 0px;"&gt;To list only the commits made on your current branch after it split from a parent branch, use the double-dot (&lt;/span&gt;&lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_j" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;..&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="font-size: 16px;"&gt;) syntax with &lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_k" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_l" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;git log&lt;/code&gt;&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="font-size: 16px;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="Fsg96" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;u0ccRe_r|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="u0ccRe_r" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="u0ccRe_s" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;&#128187; The Best Commands&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIBRAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCAUQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="u0ccRe_t" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;Run this command from your current branch:&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEICBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-hveid="CAIIAAgBCAgQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="u0ccRe_14,u0ccRe_13" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="u0ccRe_12" style="border-bottom: 0px rgb(0, 29, 53); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" dir="ltr" style="border-bottom: 0px rgb(0, 29, 53); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" jsuid="u0ccRe_14" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git log main..HEAD&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); font-size: 12px; margin: 0px;"&gt;&lt;span style="font-size: 16px;"&gt;If you prefer a clean, single-line overview:&lt;/span&gt;&lt;span style="font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIChAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-hveid="CAIIAAgBCAoQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="u0ccRe_1k,u0ccRe_1j" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="u0ccRe_1i" style="border-bottom: 0px rgb(0, 29, 53); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" dir="ltr" style="border-bottom: 0px rgb(0, 29, 53); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" jsuid="u0ccRe_1k" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git log &lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;--oneline&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; main..HEAD&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); font-size: 12px; margin: 0px;"&gt;&lt;em class="eujQNb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="yHWXO#Mkm8ud" jsuid="u0ccRe_1q" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 0px;"&gt;(Note: Replace &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_1r" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;main&lt;/code&gt; with &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_1s" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;master&lt;/code&gt;, &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_1t" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;develop&lt;/code&gt;, or whatever the name of your parent branch is.)&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;u0ccRe_1z|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="u0ccRe_1z" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIDBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;hr class="j3tEEe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 32px 0px; text-decoration: none; border-bottom: 0px rgb(128, 128, 128);" data-sfc-cb="" data-sfc-pl="||[]" data-sfc-root="ep" jsaction="" jscontroller="llbKvd#iOlsLd" jsuid="u0ccRe_20" style="border-bottom: 0px rgb(128, 128, 128); margin: 32px 0px;" /&gt;&lt;/div&gt;&lt;div class="Fsg96" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;u0ccRe_21|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="u0ccRe_21" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIDhAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="u0ccRe_22" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;&#128269; How It Works&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIExAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBMQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="u0ccRe_23" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;The &lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_24" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_25" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;..&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; operator acts as a set subtraction tool.&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIFBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;ul class="KsbFXc U6u95" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBQQAQ" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Q-7AUegoIAggACAEIFBAB" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="u0ccRe_2d" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBQQAg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="u0ccRe_2e" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="u0ccRe_2f" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_2g" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;&lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_2h" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;main..HEAD&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; means: "Show me all commits reachable from &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_2i" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;HEAD&lt;!--TgQPHd||[]--&gt;&lt;/code&gt; (your current branch), but &lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_2j" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;exclude&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; any commits that are reachable from &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_2k" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;main&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;."&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBQQAw" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="u0ccRe_2l" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="u0ccRe_2m" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;This leaves you exactly with the new commits added to your feature branch since the day you used &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_2n" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;git checkout -b&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd||[]--&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="Fsg96" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;u0ccRe_2y|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="u0ccRe_2y" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIFhAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="u0ccRe_2z" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;&#128161; Advanced Options&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIFxAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBcQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="u0ccRe_30" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;Depending on your workflow, you can add flags to handle specific scenarios:&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIGRAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;ul class="KsbFXc U6u95" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBkQAQ" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Q-7AUegoIAggACAEIGRAB" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="u0ccRe_36" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBkQAg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="u0ccRe_37" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="u0ccRe_38" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_39" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Exclude Merge Commits:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; If you have pulled or merged other branches into your feature branch and only want to see your unique work, add &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="u0ccRe_3a" style="border-bottom: 0.666667px solid rgb(243, 245, 246); font-size: 14px; margin: 0px;"&gt;--no-merges&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;:&lt;/span&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-hveid="CAIIAAgBCBkQAw" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="u0ccRe_3d,u0ccRe_3c" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="u0ccRe_3b" style="border-bottom: 0px rgb(0, 29, 53); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" dir="ltr" style="border-bottom: 0px rgb(0, 29, 53); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" jsuid="u0ccRe_3d" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git log main..HEAD &lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;--no-merges&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); font-size: 12px; margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBkQCg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="u0ccRe_3o" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="u0ccRe_3p" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_3q" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Automatic Parent Tracking:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; If you don't want to type out the parent branch name every time, you can instruct Git to find the merge base automatically:&lt;/span&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-hveid="CAIIAAgBCBkQCw" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" data-wiz-uids="u0ccRe_3t,u0ccRe_3s" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="u0ccRe_3r" style="border-bottom: 0px rgb(0, 29, 53); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" dir="ltr" style="border-bottom: 0px rgb(0, 29, 53); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" jsuid="u0ccRe_3t" style="border-bottom: 0px rgb(0, 29, 53); margin: 0px;"&gt;&lt;span style="color: #2b00fe;"&gt;git log $(git merge-base main HEAD)..HEAD&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(243, 245, 246);" style="border-bottom: 0.666667px solid rgb(243, 245, 246); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" style="border-bottom: 0px rgb(0, 29, 53); font-size: 12px; margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd||[]--&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj8laDQhcqVAxWLz_ACHQmdNO4Qi4wTegoIAggACAEIHhAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCB4QAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="u0ccRe_46" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;If you want to view these changes in a visual graph to verify where the split happened, I can show you how to configure a &lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="u0ccRe_47" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;graph view alias&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;. Would you like to see that?&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Disk usage analysis in linux</title><link>http://i-sane.blogspot.com/2026/07/disk-usage-analysis-in-linux.html</link><category>analysis</category><category>Disk</category><category>linux
du</category><category>ntdu</category><category>usage</category><author>noreply@blogger.com (Adv User)</author><pubDate>Wed, 8 Jul 2026 18:08:12 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-1441861235196499821</guid><description>&lt;p&gt;&lt;/p&gt;&lt;h1 style="text-align: left;"&gt;&lt;span style="font-family: Roboto;"&gt;Disk usage analysis in linux&lt;/span&gt;&lt;/h1&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;Most common approach if you have access to install something is &lt;b&gt;ncdu &lt;/b&gt;command&lt;br&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install ncdu -y&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;&lt;a href="http://i-sane.blogspot.com/2026/07/disk-usage-analysis-in-linux.html#more"&gt;Подробнее ...&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>EchoAPI vs Postman</title><link>http://i-sane.blogspot.com/2026/07/echoapi-vs-postman.html</link><category>EchoAPI</category><category>Postman</category><category>versus</category><category>vs</category><author>noreply@blogger.com (Adv User)</author><pubDate>Tue, 7 Jul 2026 07:04:07 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-7934181650350720139</guid><description>&lt;p&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;Whether &lt;/span&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_n" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px;"&gt;&lt;span class="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="mouseenter:&amp;amp;ivsvAb_o|WOQqYb;mouseleave:&amp;amp;ivsvAb_o|Tx5Rb;focusin:&amp;amp;ivsvAb_o|mrwrPd;focusout:&amp;amp;ivsvAb_o|mFndSc;pointerdown:&amp;amp;ivsvAb_o|FEiYhc;click:&amp;amp;ivsvAb_o|C6aVhd;" jscontroller="KMhGd#Mx1qPe" jsuid="ivsvAb_o" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;a class="H23r4e" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: underline 1px rgb(26, 13, 171); border-bottom: 0px rgb(26, 13, 171);" data-hveid="CAIIAAgBCBAQAQ" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qy_kOegoIAggACAEIEBAB" href="https://www.echoapi.com/blog/postman-vs-echoapi-the-best-choice-for-api-developers/" ping="/url?sa=t&amp;amp;source=web&amp;amp;rct=j&amp;amp;url=https://www.echoapi.com/blog/postman-vs-echoapi-the-best-choice-for-api-developers/&amp;amp;ved=2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qy_kOegoIAggACAEIEBAB&amp;amp;opi=89978449" rel="nofollow" style="border-bottom: 0px rgb(26, 13, 171); font-weight: 500; margin: 0px; text-decoration: underline 1px rgb(26, 13, 171);" target="_blank"&gt;EchoAPI&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt; is better than &lt;/span&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_p" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px;"&gt;&lt;span class="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="mouseenter:&amp;amp;ivsvAb_q|WOQqYb;mouseleave:&amp;amp;ivsvAb_q|Tx5Rb;focusin:&amp;amp;ivsvAb_q|mrwrPd;focusout:&amp;amp;ivsvAb_q|mFndSc;pointerdown:&amp;amp;ivsvAb_q|FEiYhc;click:&amp;amp;ivsvAb_q|C6aVhd;" jscontroller="KMhGd#Mx1qPe" jsuid="ivsvAb_q" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;a aria-label="Postman. Link preview. Site: Postman. Title: Postman Echo | Get Started. URL: https://www.postman.com/api-evangelist/design/collection/4x6fo24/postman-echo." class="H23r4e" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: underline 1px rgb(26, 13, 171); border-bottom: 0px rgb(26, 13, 171);" data-hveid="CAIIAAgBCBAQAg" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qy_kOegoIAggACAEIEBAC" href="https://www.postman.com/api-evangelist/design/collection/4x6fo24/postman-echo" ping="/url?sa=t&amp;amp;source=web&amp;amp;rct=j&amp;amp;url=https://www.postman.com/api-evangelist/design/collection/4x6fo24/postman-echo&amp;amp;ved=2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qy_kOegoIAggACAEIEBAC&amp;amp;opi=89978449" rel="nofollow" style="border-bottom: 0px rgb(26, 13, 171); font-weight: 500; margin: 0px; text-decoration: underline 1px rgb(26, 13, 171);" target="_blank"&gt;Postman&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt; depends entirely on your development needs: &lt;/span&gt;&lt;mark class="HxTRcb" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4QuJAPegoIAggACAEIEBAD" data-wiz-uids="ivsvAb_s" jsaction="click:&amp;amp;ivsvAb_r|h5M12e;mouseenter:&amp;amp;ivsvAb_r|sbHm2b;mouseleave:&amp;amp;ivsvAb_r|Tx5Rb;rcuQ6b:&amp;amp;ivsvAb_r|npT2md" jscontroller="DfH0l#VLQhtf" jsuid="ivsvAb_r" style="border-bottom: 0px rgb(0, 29, 53); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;EchoAPI is significantly better if you want a &lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_t" style="border-bottom: 0px rgb(0, 29, 53); font-weight: 700; margin: 0px;"&gt;lightweight, login-free, offline-first tool&lt;/span&gt; that embeds right into your code editor&lt;/mark&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;. However, Postman remains the superior option for &lt;/span&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_u" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px;"&gt;massive enterprises&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt; that require deep multi-protocol support and complex, cloud-hosted team workspace permissions.&lt;/span&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;ivsvAb_11|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="ivsvAb_11" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="ivsvAb_12" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;Core Differences at a Glance&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;ivsvAb_13|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="ivsvAb_13" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIFhAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="Fv6NCb" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBYQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Q-q4QegoIAggACAEIFhAB" jsaction="rcuQ6b:&amp;amp;ivsvAb_2h|npT2md" jscontroller="kbUand#UYOFMe" jsuid="ivsvAb_2h" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 12px;"&gt;&lt;table class="NRefec" data-animation-nesting="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 0px;"&gt;&lt;tbody data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_2i" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="ivsvAb_2j" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Feature&lt;!--TgQPHd||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="ivsvAb_2p" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;EchoAPI&lt;!--TgQPHd||[]--&gt;&lt;/th&gt;&lt;th class="iry6k" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="uuu13#x1Xdt" jsuid="ivsvAb_2q" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Postman&lt;!--TgQPHd||[]--&gt;&lt;/th&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_2r" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_2s" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_2t" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;System Weight&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_2u" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Ultra-lightweight; fast startup&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_2v" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Bulky; heavy resource consumer&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_2w" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_2x" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_2y" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Account Req.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_2z" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;No mandatory login; works out of the box&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_30" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Mandatory login for cloud/collections&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_31" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_32" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_33" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Offline Mode&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_34" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;100% functional offline (Local storage)&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_35" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Highly restricted / Cloud-dependent&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_36" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_37" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_38" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Editor Integration&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_39" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Native extensions for VS Code and IntelliJ&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3a" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Separate native desktop application&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_3b" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3c" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_3d" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Script Compatibility&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3e" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;100% Postman script syntax compatible&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(210, 210, 210);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3f" style="border-bottom: 0.666667px solid rgb(210, 210, 210); font-size: 14px; margin: 0px;"&gt;Native/Standard syntax&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;tr class="cZCYO" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="OkanJc#hv5sFd" jsuid="ivsvAb_3g" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3h" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_3i" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Pricing&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3j" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;Highly generous free tier / completely free plugins&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;td class="cOeeGf" colspan="undefined" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="QYassd#cLglr" jsuid="ivsvAb_3k" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;Restrictive free limits (e.g., runner limits)&lt;!--TgQPHd||[]--&gt;&lt;/td&gt;&lt;!--TgQPHd||[]--&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;!--TgQPHd||[[1,0,0,null,null,&amp;quot;&amp;quot;]]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;ivsvAb_3v|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="ivsvAb_3v" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIFxAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;hr class="j3tEEe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 32px 0px; text-decoration: none; border-bottom: 0px rgb(128, 128, 128);" data-sfc-cb="" data-sfc-pl="||[]" data-sfc-root="ep" jsaction="" jscontroller="llbKvd#iOlsLd" jsuid="ivsvAb_3w" style="border-bottom: 0px rgb(128, 128, 128); margin: 32px 0px;" /&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;ivsvAb_3x|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="ivsvAb_3x" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIGBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="ivsvAb_3y" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;Why EchoAPI is Better&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIHBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBwQAQ" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Q-7AUegoIAggACAEIHBAB" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="ivsvAb_3z" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBwQAg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="ivsvAb_40" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="ivsvAb_41" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_42" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Zero Bloat &amp;amp; Better Speed:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; Reviewers notes that EchoAPI runs smoothly inside your IDE (like VS Code), avoiding the slow startup times and lagging UI often associated with Postman.&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBwQBw" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="ivsvAb_49" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="ivsvAb_4a" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_4b" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;No Forced Login:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; You can test, save local collections, and design APIs immediately without creating an account or storing sensitive endpoint data on a public cloud.&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBwQDA" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="ivsvAb_4i" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="ivsvAb_4j" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_4k" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Flawless Postman Migration:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; It features 100% compatibility with Postman's scripting syntax. You can import your existing Postman collections directly into EchoAPI, and pre-request scripts or test assertions will run perfectly without rewritten code.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; [&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCBwQEQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="ivsvAb_4r" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="ivsvAb_4s" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_4t" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Scriptless Testing &amp;amp; Smart UI:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; For standard cases, it offers visual, GUI-based parameter extraction and assertion tools, eliminating the need to manually write JavaScript code for simple tests.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd||[]--&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;ivsvAb_57|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="ivsvAb_57" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIIRAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="ivsvAb_58" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;Why Postman is Better&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIIhAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;ul class="KsbFXc U6u95" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCCIQAQ" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Q-7AUegoIAggACAEIIhAB" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="ivsvAb_59" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCCIQAg" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="ivsvAb_5a" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="ivsvAb_5b" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_5c" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Enterprise Ecosystem:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; Postman has been the market leader for years. Its mature ecosystem offers incredibly deep documentation, complex enterprise governance controls, and vast public API networks.&lt;/span&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCCIQBw" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="ivsvAb_5j" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="ivsvAb_5k" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_5l" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Advanced Multi-Protocol Testing:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; While EchoAPI handles standard REST, WebSockets, and GraphQL well, Postman features deeper edge-case tooling for complex gRPC streams, SOAP infrastructure, and intricate multi-step automated testing webhooks.&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&amp;nbsp;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd||[]--&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;ivsvAb_5w|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="ivsvAb_5w" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIJhAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="ivsvAb_5x" role="heading" style="border-bottom: 0px rgb(0, 29, 53); font-size: 20px; font-weight: 600; margin: 24px 0px 12px;"&gt;The Verdict&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="" data-bfc="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-ved="2ahUKEwj3t8Hs1r-VAxUKpIkEHRUAOe4Qi4wTegoIAggACAEIKBAA" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 0px;"&gt;&lt;div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAgBCCgQAQ" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="ivsvAb_62" style="border-bottom: 0px rgb(10, 10, 10); margin: 12px 0px 16px;"&gt;If you are an individual developer or work in a mid-sized team using VS Code, &lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_63" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;EchoAPI provides a faster, cleaner, and less restrictive environment&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;. If you are tied to a massive organization that relies heavily on Postman's cloud workspaces, staying with &lt;span class="Yjhzub" data-complete="true" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="ivsvAb_64" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Postman&lt;!--TgQPHd||[]--&gt;&lt;/span&gt; is necessary&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Google  Charts API - Gauge Chart Example</title><link>http://i-sane.blogspot.com/2026/04/google-char-gauge-chart-example.html</link><category>API</category><category>chart</category><category>example</category><category>gauge</category><category>Google</category><author>noreply@blogger.com (Adv User)</author><pubDate>Sun, 26 Apr 2026 22:09:41 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-998911883540282952</guid><description>&lt;h1 style="text-align: left;"&gt;Google&amp;nbsp; Charts API - Gauge Chart Example&lt;/h1&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEi5Rz01TufAuwDtPee01WZ1Ftjap9XrWSkx5qBgWLbVEhZjBv23JSwvgISAvXLzRCB_sRz1g1IMDrir66kqyNagNwFqCfV9tgms7Zm-raiwoIatoGABN6uvNkK-KhaCnVXwRWUYwtVxkAAOxFTgpG5j-948F1jO2FxlwGGmrQKpC-DJGxGclWJfN7Y0iNHd" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="263" data-original-width="691" height="122" src="https://blogger.googleusercontent.com/img/a/AVvXsEi5Rz01TufAuwDtPee01WZ1Ftjap9XrWSkx5qBgWLbVEhZjBv23JSwvgISAvXLzRCB_sRz1g1IMDrir66kqyNagNwFqCfV9tgms7Zm-raiwoIatoGABN6uvNkK-KhaCnVXwRWUYwtVxkAAOxFTgpG5j-948F1jO2FxlwGGmrQKpC-DJGxGclWJfN7Y0iNHd" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;
  &lt;script async="" src="//jsfiddle.net/Bujhm/ov6q34kj/embed/"&gt;&lt;/script&gt;&lt;a href="https://developers.google.com/chart/interactive/docs/gallery/gauge#overview" rel="nofollow" target="_blank"&gt;https://developers.google.com/chart/interactive/docs/gallery/gauge#overview&lt;/a&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEi5Rz01TufAuwDtPee01WZ1Ftjap9XrWSkx5qBgWLbVEhZjBv23JSwvgISAvXLzRCB_sRz1g1IMDrir66kqyNagNwFqCfV9tgms7Zm-raiwoIatoGABN6uvNkK-KhaCnVXwRWUYwtVxkAAOxFTgpG5j-948F1jO2FxlwGGmrQKpC-DJGxGclWJfN7Y0iNHd=s72-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Preparing your local Postges DB. Resolving timezone headache for developers.</title><link>http://i-sane.blogspot.com/2026/04/preparing-your-local-postges-db.html</link><category>DB</category><category>local</category><category>Postgres</category><category>timezone</category><author>noreply@blogger.com (Adv User)</author><pubDate>Fri, 17 Apr 2026 06:12:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-4589027728303554951</guid><description>&lt;div class="Y3BBE" data-complete="true" data-hveid="CAIQAA" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-root="c" jsaction="rcuQ6b:&amp;amp;sNOqed_f|npT2md" jscontroller="zcfIf" jsuid="sNOqed_f" style="background-color: white; color: #0a0a0a; line-height: 24px; margin-block: 12px 16px; overflow-wrap: break-word;"&gt;&lt;div style="color: black;"&gt;&lt;h1 style="text-align: center;"&gt;&lt;span style="font-family: Roboto;"&gt;Preparing your local Postges DB&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="font-family: Roboto;"&gt;Resolving timezone headache for developers.&lt;/span&gt;&lt;/h2&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp;To set your PostgreSQL server time to UTC, you can change the setting globally, per database, per user, or for a single session.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;Permanent Global Change&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;Modify the main configuration file to set the default for the entire server.&lt;/span&gt;&lt;/div&gt;&lt;ol style="color: black;"&gt;&lt;li&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong&gt;Locate the file&lt;/strong&gt;: Find your&amp;nbsp;&lt;code&gt;postgresql.conf&lt;/code&gt;&amp;nbsp;file by running this SQL command in your database:&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="font-family: Roboto;"&gt;SHOW config_file;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong style="font-family: Roboto;"&gt;Edit the file&lt;/strong&gt;&lt;span style="font-family: Roboto;"&gt;: Open&amp;nbsp;&lt;/span&gt;&lt;code&gt;postgresql.conf&lt;/code&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp;and find the&amp;nbsp;&lt;/span&gt;&lt;code&gt;timezone&lt;/code&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp;parameter. Change it to:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;text&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="font-family: Roboto;"&gt;timezone = 'UTC'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;Use code with caution.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong&gt;Apply changes&lt;/strong&gt;: Reload the configuration without restarting the server by running:&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="font-family: Roboto;"&gt;SELECT pg_reload_conf();
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;em style="font-family: Roboto;"&gt;(Alternatively, use&amp;nbsp;&lt;code&gt;&lt;b&gt;pg_ctl reload&lt;/b&gt;&lt;/code&gt;&amp;nbsp;from your terminal)&lt;/em&gt;&lt;span style="font-family: Roboto;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;Permanent Database or User Change&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;If you only want specific databases or users to use UTC, use these SQL commands:&lt;/span&gt;&lt;/div&gt;&lt;ul style="color: black;"&gt;&lt;li&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong&gt;Per Database:&lt;/strong&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="font-family: Roboto;"&gt;ALTERDATABASE your_database_name SET timezone TO'UTC';
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong style="font-family: Roboto;"&gt;Per User&lt;/strong&gt;&lt;span style="font-family: Roboto;"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;ALTER USER your_username SET timezone TO'UTC';&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;em&gt;Note: Users will need to reconnect for these changes to take effect&lt;/em&gt;.&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;Temporary Session Change&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;To change the time zone for only your current connection, run:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;SET TIMEZONE 'UTC';&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;This is useful for testing but will reset once you disconnect.&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;Verification&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;To confirm your current settings, use these commands:&lt;/span&gt;&lt;/div&gt;&lt;ul style="color: black;"&gt;&lt;li&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong&gt;Check current time zone&lt;/strong&gt;:&amp;nbsp;&lt;code&gt;SHOW timezone;&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong&gt;Check current server time&lt;/strong&gt;:&amp;nbsp;&lt;code&gt;SELECT now();&lt;/code&gt;.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="color: black;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong&gt;Tip:&lt;/strong&gt;&amp;nbsp;PostgreSQL internally stores&amp;nbsp;&lt;code&gt;TIMESTAMP WITH TIME ZONE&lt;/code&gt;&amp;nbsp;(&lt;code&gt;timestamptz&lt;/code&gt;) data in UTC regardless of your server's display settings. Changing the server time zone primarily affects how these timestamps are displayed to you and how "timezone-naive" timestamps are interpreted.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Axios returned 403 when i requesting resource which has proper CORS setup - why? (my case)</title><link>http://i-sane.blogspot.com/2026/04/axios-returned-403-when-i-requesting.html</link><category>403</category><category>access denied</category><category>Axios</category><category>CloudFlare</category><category>CORS</category><category>permissions</category><author>noreply@blogger.com (Adv User)</author><pubDate>Fri, 3 Apr 2026 06:00:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-1917849642550107981</guid><description>&lt;h1&gt;Axios returned 403 when i requesting resource which has proper CORS setup - why? (my case)&lt;/h1&gt;&lt;h1 style="text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMXaRAQGH8Zd-n3Li-W7M3dNibQizcuwWr_d4dn3ZjLKPto6m4e4OnbSPXZS_C0NpamkzCyJf-NK1ydJM69Ro-ax3DuSC93sFIryKYhgsr7EDvuxiHeoEGIztb3h6r3PtMdVqtIz8YJNi3edsr-PXy-bGxCFjH4N5MQmMcQMN2b_fyTwixNTKbgqDf0Wwp/s1408/image_186e2f6b.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="768" data-original-width="1408" height="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMXaRAQGH8Zd-n3Li-W7M3dNibQizcuwWr_d4dn3ZjLKPto6m4e4OnbSPXZS_C0NpamkzCyJf-NK1ydJM69Ro-ax3DuSC93sFIryKYhgsr7EDvuxiHeoEGIztb3h6r3PtMdVqtIz8YJNi3edsr-PXy-bGxCFjH4N5MQmMcQMN2b_fyTwixNTKbgqDf0Wwp/w640-h350/image_186e2f6b.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h1&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;I fell for that trap&#129327; - if you too, look into your infrastructure for &lt;b&gt;CloudFlare DNS Proxy&lt;/b&gt; and rules inside Cloudflare which is blocking you and your Axios returned you 403 because it sees &lt;b&gt;access denied&lt;/b&gt; from Cloudflare, not from your company resource you are trying to make request to and which is properly available for you by CORS (permissions). Happy coding, guys! &#129303;&lt;/span&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMXaRAQGH8Zd-n3Li-W7M3dNibQizcuwWr_d4dn3ZjLKPto6m4e4OnbSPXZS_C0NpamkzCyJf-NK1ydJM69Ro-ax3DuSC93sFIryKYhgsr7EDvuxiHeoEGIztb3h6r3PtMdVqtIz8YJNi3edsr-PXy-bGxCFjH4N5MQmMcQMN2b_fyTwixNTKbgqDf0Wwp/s72-w640-h350-c/image_186e2f6b.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>15 поширених команд Linux (repost з ITEDU.center)</title><link>http://i-sane.blogspot.com/2026/03/15-linux-repost-iteducenter.html</link><category>15 поширених команд</category><category>center</category><category>ip</category><category>itedu</category><category>Linux</category><category>ping</category><category>traceroute</category><author>noreply@blogger.com (Adv User)</author><pubDate>Sat, 28 Mar 2026 19:42:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-7920908259629179143</guid><description>&lt;p&gt;&amp;nbsp;&lt;span face="Montserrat, sans-serif" style="color: #282828; font-size: 16px;"&gt;У цій статті зібрали 15 поширених команд, які варто знати кожному сисадміну. Це не повний список можливостей Linux, але вони допоможуть моніторити систему, знаходити помилки й автоматизувати рутину.&lt;/span&gt;&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;htop — зручний перегляд процесів у реальному часі&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Це вдосконалений варіант команди top, але з інтуїтивним інтерфейсом і можливістю управляти процесами безпосередньо. htop показує:&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;навантаження на CPU та RAM у вигляді графіків;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;повну структуру процесів у вигляді дерева;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;можливість завершити процес без введення PID.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;lsof — перевірка відкритих файлів і портів&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;lsof (List Open Files) дозволяє дізнатися, які процеси використовують конкретні файли або порти. Корисно, якщо порт уже зайнятий, і сервіс не стартує.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;lsof -i :80&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Це допоможе зʼясувати, що саме використовує порт 80 — зазвичай вебсервер або інша мережева служба.&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;journalctl — перегляд логів у системах із systemd&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Для Ubuntu 18.04+, CentOS 7+ та інших&amp;nbsp;&lt;a data-wpel-link="internal" href="https://itedu.center/ua/blog/ratings/8_dystrybutyviv_linux/?utm_source=blog&amp;amp;utm_medium=referral&amp;amp;utm_campaign=blog_article_top_15_komand_linux_dlia_sysadmina" rel="nofollow" style="box-sizing: border-box; color: #00c1b3; margin: 0px; padding: 0px; text-decoration-line: none; transition: color 0.3s; word-break: break-word;" target="_blank" title=""&gt;дистрибутивів&lt;/a&gt;&amp;nbsp;із systemd ця команда — мастхев. Вона дозволяє:&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;читати системні журнали;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;шукати помилки;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;фільтрувати логи за сервісами.&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;journalctl -xe&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # перегляд останніх повідомлень і помилок&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;journalctl -u nginx &amp;nbsp; # перегляд логів конкретного сервісу nginx&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;systemctl — керування службами&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Це основна команда для взаємодії з&amp;nbsp;&lt;a data-wpel-link="internal" href="https://itedu.center/ua/blog/review/shcho-take-systemd/?utm_source=blog&amp;amp;utm_medium=referral&amp;amp;utm_campaign=blog_article_top_15_komand_linux_dlia_sysadmina" rel="nofollow" style="box-sizing: border-box; color: #00c1b3; margin: 0px; padding: 0px; text-decoration-line: none; transition: color 0.3s; word-break: break-word;" target="_blank" title=""&gt;systemd&lt;/a&gt;. За допомогою systemctl ти можеш&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;запускати та зупиняти сервіси;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;вмикати автозапуск;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;перевіряти статус служб.&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;systemctl status sshd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;systemctl restart apache2&amp;nbsp;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;systemctl enable nginx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;du — аналіз використання диска&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;du (disk usage) дозволяє побачити, які каталоги займають найбільше місця.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;du -sh /var/*&amp;nbsp;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Зручно, коли потрібно зʼясувати, чому диск майже заповнений.&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;df — перевірка вільного місця&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Показує, скільки вільного простору залишилось на розділах. З прапорцем -h (human-readable) результат виводиться у зручному вигляді: мегабайти, гігабайти, замість байтів.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;df -h&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Цю команду найчастіше використовують, коли програми падають через нестачу місця.&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;free — моніторинг оперативної памʼяті&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Ця команда покаже, скільки оперативки та swap розділу використовується.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;free -h &amp;nbsp; # вивід доступної та зайнятої памʼяті&amp;nbsp;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Зручно для базової діагностики, якщо система почала гальмувати.&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;uptime — навантаження на систему&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Показує аптайм системи, кількість активних користувачів і середнє навантаження за останні 1, 5 та 15 хвилин.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;uptime &amp;nbsp; # коротка зведена інформація про роботу системи&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;top — базовий моніторинг процесів&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Менш зручна за htop: складніша навігація, але встановлена майже в кожному дистрибутиві.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;top &amp;nbsp; # перегляд процесів у реальному часі&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;ps aux — знімок усіх процесів&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Команда показує всі запущені процеси в системі. Можна поєднувати з grep, щоб шукати конкретні сервіси:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;ps aux | grep apache&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;ps aux –sort=-%mem | head&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;ss — перевірка мережевих зʼєднань&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Сучасна альтернатива netstat. Вона швидша, детальніша і вже включена в більшість дистрибутивів.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;ss -tuln &amp;nbsp; # показує активні TCP/UDP-порти та процеси, що їх слухають&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Показує, які порти відкриті, які служби їх використовують і які зовнішні зʼєднання активні.&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;ip — конфігурація мережі&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Це сучасна утиліта для роботи з мережевими інтерфейсами, маршрутами й адресацією. Вона прийшла на заміну застарілому ifconfig і дає більше контролю.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;За допомогою команди можна:&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;переглядати конфігурацію мережевих інтерфейсів (`ip a`);&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px 0px 27px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;керувати маршрутами (`ip r`);&lt;/li&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;призначати IP-адреси або змінювати їх вручну.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;ping — перевірка доступності&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Найпростіший спосіб перевірити, чи хост доступний у мережі. ping надсилає запити ICMP й чекає на відповідь&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;ping google.com&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;ping -c 4 192.168.0.1&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;traceroute — діагностика маршрутів&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Допомагає зʼясувати, на якому етапі виникає проблема з мережею або де затримуються пакети.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;traceroute google.com &amp;nbsp; # відображення маршруту пакетів до хоста&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;nc — перевірка портів&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Дозволяє перевірити, чи відкритий порт 22 (SSH) на віддаленому хості та чи відповідає служба. Корисно для діагностики SSH, вебсерверів, баз даних тощо.&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;nc -zv 192.168.1.10 22&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style="text-align: left;"&gt;Як дізнатися в якому шелі ті працюєш зараз&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="box-sizing: border-box; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" data-sfc-cb="" data-sfc-root="c" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" jsaction="" jscontroller="zYmgkd" jsuid="WSFBKd_y" style="color: #0a0a0a;"&gt;&lt;code class="o8j0Mc" data-processed="true" data-sfc-cb="" data-sfc-root="c" dir="ltr" jsaction="" jscontroller="PR9Qj" jsuid="WSFBKd_z"&gt;&lt;span style="color: #282828; font-family: Montserrat, sans-serif;"&gt;&lt;span style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; font-weight: bolder; line-height: 22px; padding: 2px 4px;"&gt;echo $0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Yjhzub" data-processed="true" data-sfc-cb="" data-sfc-root="c" jsaction="" jscontroller="zYmgkd" jsuid="WSFBKd_14" style="background-color: white; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #282828; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: bolder; line-height: 22px; padding: 2px 4px;"&gt;&lt;code class="o8j0Mc" data-processed="true" data-sfc-cb="" data-sfc-root="c" dir="ltr" jsaction="" jscontroller="PR9Qj" jsuid="WSFBKd_15" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;ps -p $$&lt;/code&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="font-family: Roboto;"&gt;: The $$ parameter holds the Process ID (PID) of the current shell.&lt;/span&gt;&lt;br /&gt;&lt;span class="Yjhzub" data-processed="true" data-sfc-cb="" data-sfc-root="c" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" jsaction="" jscontroller="zYmgkd" jsuid="WSFBKd_y" style="color: #0a0a0a;"&gt;&lt;code class="o8j0Mc" data-processed="true" data-sfc-cb="" data-sfc-root="c" dir="ltr" jsaction="" jscontroller="PR9Qj" jsuid="WSFBKd_z"&gt;&lt;span class="Yjhzub" data-processed="true" data-sfc-cb="" data-sfc-root="c" jsaction="" jscontroller="zYmgkd" jsuid="WSFBKd_1b" style="background-color: white; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #282828; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: bolder; line-height: 22px; padding: 2px 4px;"&gt;&lt;code class="o8j0Mc" data-processed="true" data-sfc-cb="" data-sfc-root="c" dir="ltr" jsaction="" jscontroller="PR9Qj" jsuid="WSFBKd_1c" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;echo $SHELL&lt;br /&gt;&lt;span class="Yjhzub" data-processed="true" data-sfc-cb="" data-sfc-root="c" jsaction="" jscontroller="zYmgkd" jsuid="WSFBKd_1i" style="background-color: white; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: bolder;"&gt;&lt;code class="o8j0Mc" data-processed="true" data-sfc-cb="" data-sfc-root="c" dir="ltr" jsaction="" jscontroller="PR9Qj" jsuid="WSFBKd_1j" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;readlink /proc/$$/exe&lt;/code&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="font-family: Roboto;"&gt;: (On Linux systems that support the /proc filesystem) This command will display the actual executable file that is running your current shell session, resolving any symbolic links&lt;/span&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Git  - merge investigation commands</title><link>http://i-sane.blogspot.com/2026/03/git-merge-investigation.html</link><category>branch</category><category>command</category><category>commands</category><category>feature</category><category>Git</category><category>How to</category><category>inspect</category><category>merge</category><category>merged</category><author>noreply@blogger.com (Adv User)</author><pubDate>Mon, 9 Mar 2026 17:35:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-5651947123711856453</guid><description>&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;1. How to find out if branch has been merged into your current branch&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;h3&gt;&lt;span style="font-family: Roboto;"&gt;2. How to find out if your current branch has been merged into any other branch&lt;br&gt;&lt;br&gt;3. Edge case with cherry &#127826; (pick)&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="text-align: left;"&gt;&lt;span style="font-family: Roboto;"&gt;1. Check &lt;b&gt;if a feature or branch has been merged into your current branch&lt;/b&gt;, use the git branch --merged command, the git merge-base command, or inspect the git log. &lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Methods to Verify a Merge:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;1. Using git branch --merged &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;This command lists all branches whose tips are reachable from your current branch&amp;#39;s HEAD, meaning they are fully integrated. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;First, ensure you are on the branch where you expect the feature to be merged (e.g., main):&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;git checkout &amp;lt;current-branch-name&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Then, run the command to list all merged branches:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;git branch --merged&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;If the feature branch name appears in the output list, it has been merged into your current branch. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;To see branches that have not been merged, you can use the --no-merged flag instead: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;git branch --no-merged&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;2. Using git merge-base&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;This method determines the common ancestor between two branches. If the common ancestor is the same as the feature branch&amp;#39;s tip, then the feature branch is fully merged. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Find the last commit hash of the feature branch:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;git rev-parse &amp;lt;feature-branch-name&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Find the best common ancestor between your current branch and the feature branch:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;git merge-base &amp;lt;current-branch-name&amp;gt; &amp;lt;feature-branch-name&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;If the output of both commands is the same commit hash, the feature branch is merged. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span class="Yjhzub" data-processed="true" data-sfc-cb="" data-sfc-root="c" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" jsaction="" jscontroller="zYmgkd" jsuid="K4GUic_1n" style="background-color: white; color: #0a0a0a; font-size: 16px; font-weight: bolder;"&gt;To check if one branch is an ancestor of another:&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt; You can use the &lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" data-sfc-cb="" data-sfc-root="c" dir="ltr" jsaction="" jscontroller="PR9Qj" jsuid="K4GUic_1o" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; border: 0.666667px solid rgb(243, 245, 246); color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;--is-ancestor&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt; flag, which returns an exit status of 0 if true, and 1 otherwise (useful for scripting):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: courier;"&gt;if git merge-base --is-ancestor &amp;lt;ancestor-branch&amp;gt; &amp;lt;descendant-branch&amp;gt;; then&lt;br&gt;&lt;/span&gt;&lt;span style="font-family: courier;"&gt;  echo &amp;quot;&amp;lt;ancestor-branch&amp;gt; is an ancestor of &amp;lt;descendant-branch&amp;gt;&amp;quot;&lt;br&gt;&lt;/span&gt;&lt;span style="font-family: courier;"&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;3. Using git log&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;You can visually inspect the commit history for the commits from the feature branch within your current branch&amp;#39;s history. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Switch to your current branch:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;git checkout &amp;lt;current-branch-name&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Check the log for commits from the feature branch:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;git log &amp;lt;feature-branch-name&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;If the commits from the feature branch are visible in the log, they are part of the current branch&amp;#39;s history. For a more visual representation, you can use:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;git log --decorate --oneline --graph --all&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;This shows a graphical history, making it easier to spot the merge commit. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;4. Using a Git Hosting Service (GitHub, GitLab, etc.) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;Check the status of the pull request (PR) or merge request (MR) associated with the feature branch on your web-based Git platform (e.g., GitHub, GitLab). The status will typically indicate whether the PR/MR has been successfully merged.&lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;span style="font-family: Roboto;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://i-sane.blogspot.com/2026/03/git-merge-investigation.html#more"&gt;Подробнее ...&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to forget to run php ./vendor/bin/drush cr for ever</title><link>http://i-sane.blogspot.com/2026/02/how-to-forget-to-run-php-vendorbindrush.html</link><category>forever</category><category>forget</category><category>How to</category><category>howto</category><category>PHP</category><category>php ./vendor/bin/drush cr</category><category>run</category><category>vendor/bin/drush</category><author>noreply@blogger.com (Adv User)</author><pubDate>Thu, 12 Feb 2026 23:57:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-4227478308596524822</guid><description>&lt;h1 style="text-align: left;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a;"&gt;How to forget to run php ./vendor/bin/drush cr for ever&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgIoTCF0Olj9uXMR5Y9wOozmNb0dVixMjETV3nAVT7kvTxfkX2e7UfI8peAuXf62PuhHBJCgHVWQM_tVcAOFG8B_ud8qw9Meo23b6jGXFWeMEK6vrQXjkLHVM9mLtT5S7PfxgovPlb0nkSBMKNr4HDRMQfukHFOxgwJt5AK1WMDbZrRCbOYnaVUufAss6gc" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="1024" data-original-width="1536" height="266" src="https://blogger.googleusercontent.com/img/a/AVvXsEgIoTCF0Olj9uXMR5Y9wOozmNb0dVixMjETV3nAVT7kvTxfkX2e7UfI8peAuXf62PuhHBJCgHVWQM_tVcAOFG8B_ud8qw9Meo23b6jGXFWeMEK6vrQXjkLHVM9mLtT5S7PfxgovPlb0nkSBMKNr4HDRMQfukHFOxgwJt5AK1WMDbZrRCbOYnaVUufAss6gc=w400-h266" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;Yes, it is possible to automatically run&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_a" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;php ./vendor/bin/drush cr&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;on file save, typically by using file-watching tools like&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_b" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;nodemon&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;,&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_c" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;entr&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;, or IDE-specific plugins (e.g., VS Code "Run on Save"). These tools detect file changes in your Drupal directory and execute the drush command to clear the cache.&lt;/span&gt;&lt;span class="uJ19be notranslate" data-processed="true" data-wiz-uids="L8OQNe_e,L8OQNe_f" face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" jsaction="rcuQ6b:&amp;amp;L8OQNe_d|npT2md" jscontroller="udAs2b" jsuid="L8OQNe_d" style="color: #0a0a0a; font-size: 16px;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-processed="true" data-wiz-attrbind="class=L8OQNe_d/TKHnVd" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;span aria-hidden="true" data-processed="true"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class="KsbFXc U6u95" data-processed="true" jscontroller="mPWODf" jsuid="L8OQNe_n" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-block: 12px 16px; margin-inline: 0px; margin: 0px; padding-inline-start: 16px; padding: 0px;"&gt;&lt;li data-hveid="CAMQAA" data-processed="true" jscontroller="vsuOFb" jsuid="L8OQNe_o" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="L8OQNe_p" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="L8OQNe_q" style="font-weight: bolder;"&gt;Using&amp;nbsp;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_r" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;nodemon&lt;/code&gt;&amp;nbsp;(Node.js):&lt;/span&gt;&lt;br data-processed="true" data-serialized-params="[]" jscontroller="Gy8rfb" jsuid="L8OQNe_s" /&gt;Install&amp;nbsp;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_t" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;nodemon&lt;/code&gt;&amp;nbsp;and run:&lt;br data-processed="true" data-serialized-params="[]" jscontroller="Gy8rfb" jsuid="L8OQNe_u" /&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_v" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;nodemon --watch web/modules --watch web/themes --ext php,yml,twig --exec "php ./vendor/bin/drush cr"&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAMQAQ" data-processed="true" jscontroller="vsuOFb" jsuid="L8OQNe_w" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="L8OQNe_x" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="L8OQNe_y" style="font-weight: bolder;"&gt;Using&amp;nbsp;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_z" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;entr&lt;/code&gt;&amp;nbsp;(Unix tool):&lt;/span&gt;&lt;br data-processed="true" data-serialized-params="[]" jscontroller="Gy8rfb" jsuid="L8OQNe_10" /&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_11" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;find . -name "*.php" -o -name "*.yml" -o -name "*.twig" | entr -p php ./vendor/bin/drush cr&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAMQAg" data-processed="true" jscontroller="vsuOFb" jsuid="L8OQNe_12" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="L8OQNe_13" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="L8OQNe_14" style="font-weight: bolder;"&gt;IDE Extension (VS Code):&lt;/span&gt;&lt;br data-processed="true" data-serialized-params="[]" jscontroller="Gy8rfb" jsuid="L8OQNe_15" /&gt;Install an extension like "Run on Save" and configure it to trigger&amp;nbsp;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_16" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;php ./vendor/bin/drush cr&lt;/code&gt;&amp;nbsp;when PHP, YML, or TWIG files are saved.&lt;/span&gt;&lt;span class="txxDge notranslate" data-processed="true" data-wiz-uids="L8OQNe_18,L8OQNe_19" jsaction="rcuQ6b:&amp;amp;L8OQNe_17|npT2md" jscontroller="udAs2b" jsuid="L8OQNe_17" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-processed="true" data-wiz-attrbind="class=L8OQNe_17/TKHnVd" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;span aria-hidden="true" data-processed="true"&gt;&lt;/span&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="257d9494-1cf9-4faf-91b6-f2f0c28db9e2" data-processed="true" data-ved="2ahUKEwizuMHb5tGSAxX8zvACHdaPIrMQye0OegQIAxAD" data-wiz-attrbind="disabled=L8OQNe_17/C5gNJc;aria-label=L8OQNe_17/bOjMyf;class=L8OQNe_17/UpSNec" jsaction="click:&amp;amp;L8OQNe_17|S9kKve;mouseenter:&amp;amp;L8OQNe_17|sbHm2b;mouseleave:&amp;amp;L8OQNe_17|Tx5Rb" jsuid="L8OQNe_19" style="background-color: #e5edff; border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; position: relative; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" data-processed="true" style="color: #001d35; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul class="KsbFXc U6u95" data-processed="true" jscontroller="mPWODf" jsuid="L8OQNe_1f" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; line-height: 24px; margin-block: 12px 16px; margin-inline: 0px; margin: 0px; padding-inline-start: 16px; padding: 0px;"&gt;&lt;li data-hveid="CAUQAA" data-processed="true" jscontroller="vsuOFb" jsuid="L8OQNe_1g" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="L8OQNe_1h" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="L8OQNe_1i" style="font-weight: bolder;"&gt;Performance:&lt;/span&gt;&amp;nbsp;Automatically clearing cache on every save can slow down development, especially with large projects.&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQAQ" data-processed="true" jscontroller="vsuOFb" jsuid="L8OQNe_1j" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="L8OQNe_1k" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="L8OQNe_1l" style="font-weight: bolder;"&gt;Pathing:&lt;/span&gt;&amp;nbsp;Ensure you are running the command from the project root or adjust the path to&amp;nbsp;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_1m" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;vendor/bin/drush&lt;/code&gt;&amp;nbsp;accordingly.&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQAg" data-processed="true" jscontroller="vsuOFb" jsuid="L8OQNe_1n" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="L8OQNe_1o" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="L8OQNe_1p" style="font-weight: bolder;"&gt;PHP Version:&lt;/span&gt;&amp;nbsp;If required, specify the PHP version explicitly if your server environment requires a specific version (e.g.,&amp;nbsp;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="L8OQNe_1q" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;php83 ./vendor/bin/drush cr&lt;/code&gt;).&lt;/span&gt;&lt;span class="uJ19be notranslate" data-processed="true" data-wiz-uids="L8OQNe_1s,L8OQNe_1t" jsaction="rcuQ6b:&amp;amp;L8OQNe_1r|npT2md" jscontroller="udAs2b" jsuid="L8OQNe_1r"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-processed="true" data-wiz-attrbind="class=L8OQNe_1r/TKHnVd" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;span aria-hidden="true" data-processed="true"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgIoTCF0Olj9uXMR5Y9wOozmNb0dVixMjETV3nAVT7kvTxfkX2e7UfI8peAuXf62PuhHBJCgHVWQM_tVcAOFG8B_ud8qw9Meo23b6jGXFWeMEK6vrQXjkLHVM9mLtT5S7PfxgovPlb0nkSBMKNr4HDRMQfukHFOxgwJt5AK1WMDbZrRCbOYnaVUufAss6gc=s72-w400-h266-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Tmux - work cases and tune up</title><link>http://i-sane.blogspot.com/2026/02/tmux-work-cases-and-tune-up.html</link><category>How to</category><category>split</category><category>tmux</category><category>tune</category><category>tune-up</category><category>Windows</category><category>workcases</category><author>noreply@blogger.com (Adv User)</author><pubDate>Fri, 6 Feb 2026 17:52:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-8061942748622381511</guid><description>&lt;h1&gt;&amp;nbsp;Tmux - work cases and tune-up&lt;/h1&gt;
&lt;div&gt;
&lt;div&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjtcIFWGWEi1di5X5TaQY1l1OVDgwlab3zE7N1IvepY6hHK_7XISPPpbgShCqOmmoOIUIW4XPpkEQr1dz-WC-z-G7vsbLZemCXdLLD814WWB8uLNMuzR973StpSF6-4eYtFHRaJEGFxWLN1a-dCKFrMcJ_GQjErk1UAM1r0B7wHBWKXcsSD0dxHwQwdUR/s1536/f28ff519-30a2-4a63-b3d7-972339880069.png"&gt;&lt;img alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjtcIFWGWEi1di5X5TaQY1l1OVDgwlab3zE7N1IvepY6hHK_7XISPPpbgShCqOmmoOIUIW4XPpkEQr1dz-WC-z-G7vsbLZemCXdLLD814WWB8uLNMuzR973StpSF6-4eYtFHRaJEGFxWLN1a-dCKFrMcJ_GQjErk1UAM1r0B7wHBWKXcsSD0dxHwQwdUR/w640-h426/f28ff519-30a2-4a63-b3d7-972339880069.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#1. How to scroll rows in tmux terminal spitted windows"&gt;how to scroll rows in tmux terminal splited windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2%20. To save a tmux layout,"&gt;how to save sessions, layout, dirs and even progs state&amp;nbsp;in tmux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3.%20how to change horizontal split to vertical split in tmux"&gt;how to change horizontal split to vertical split in tmux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4. how to add horizontal and vertical splits in tmux + key bindings"&gt;how to add horizontal and vertical splits&amp;nbsp;in tmux + key bindings&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5.%20How to exit tmux but leave session working"&gt;how to exit tmux but leave session working&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6 . How to attach session to tmux"&gt;how to attach session to tmux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7. How to know how many sessions you have"&gt;how to know how many sessions you have&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#8. How to kill sessions"&gt;how to kill sessions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#9. How to switch between sessions"&gt;how to swith-between sessions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#10. How to rename sessions and panes (panes are small part of the window - splatted in tmux)"&gt;how to rename sessions and panes (panes are small part of the window - splatted in tmux)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#11. How to reload tmux configuration from tmux"&gt;How to reload tmux configuration from tmux&lt;/a&gt;&lt;/li&gt;&lt;li&gt;How to enable clocks&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;BONUS: &lt;a href="https://tmuxcheatsheet.com/"&gt;visual cheat-sheet&lt;/a&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;almost all settings are made in mine&amp;nbsp;&lt;a href="https://gist.github.com/Bujhm/86ad86a136a28008dd4d09826a062601" rel="nofollow" target="_blank"&gt;.tmux.conf you can download from my gist&lt;/a&gt;&amp;nbsp;put this file into your home directory after you install tmux on your system&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;For those who don't aware what is it - this is terminal shell and you can install it for your distro like sudo apt-get install tmux (for Debian like Ubuntu etc.)&lt;/div&gt;
&lt;h3&gt;1. How to scroll rows in tmux terminal spitted windows&lt;/h3&gt;

&lt;div&gt;To scroll rows within a specific&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;split window (pane), you must first&amp;nbsp;&lt;mark&gt;enter&amp;nbsp;copy mode&lt;/mark&gt;. This allows you to navigate and review the pane's scrollback buffer.&lt;/div&gt;
&lt;div&gt;Scrolling with Keyboard&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;Enter copy mode: Press your&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;prefix (default is Ctrl+b), then immediately press the [ key. An indicator in the top right of the pane will show the current line number.&lt;/li&gt;
&lt;li&gt;Scroll:
&lt;ul&gt;
&lt;li&gt;Use the&amp;nbsp;arrow keys&amp;nbsp;(↑ and ↓) to move one line at a time.&lt;/li&gt;
&lt;li&gt;Use Page Up and Page Down (or Shift+Page Up/Shift+Page Down in some terminal emulators) to jump an entire page.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Exit copy mode: Press the q key or Esc to return to normal mode.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;&lt;strong&gt;Scrolling with Mouse&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;For those who prefer using the mouse wheel, you need to enable mouse mode in your&amp;nbsp;&lt;code&gt;~/.tmux.conf&lt;/code&gt;&amp;nbsp;configuration file.&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Edit your&amp;nbsp;&lt;code style="background-color: #fcff01;"&gt;~/.tmux.conf&lt;/code&gt;&amp;nbsp;file&amp;nbsp;with an editor like&amp;nbsp;&lt;code&gt;nano&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code&gt;vim&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add the following line&amp;nbsp;(for tmux versions 2.1 and up):
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;&lt;span style="background-color: #fcff01; color: #2b00fe;"&gt;set -g mouse on&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
For older versions, use&amp;nbsp;&lt;code&gt;set -g mode-mouse on&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reload your&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;configuration&amp;nbsp;using the command line within a&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;session:
&lt;ul&gt;
&lt;li&gt;Press the prefix Ctrl+b.&lt;/li&gt;
&lt;li&gt;Type&amp;nbsp;&lt;code style="background-color: #fcff01;"&gt;&lt;b&gt;:&lt;/b&gt;&lt;/code&gt;&amp;nbsp;to enter the&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;command prompt.&lt;/li&gt;
&lt;li&gt;Type&amp;nbsp;&lt;code&gt;&lt;b style="background-color: #fcff01;"&gt;source-file ~/.tmux.conf&lt;/b&gt;&lt;/code&gt;&amp;nbsp;and press Enter.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Scroll: You should now be able to use your mouse scroll wheel directly within any pane, even in split windows. This also enables clicking to select panes and resize them with the mouse.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;--------------------------------------&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3&gt;2 . To save a&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;layout,&lt;/h3&gt;
the recommended method is to&amp;nbsp;&lt;mark&gt;use the&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux-resurrect&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;plugin&lt;/mark&gt;, as&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;does not have a built-in feature for saving sessions to a file by default.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;Using the&amp;nbsp;&lt;code&gt;tmux-resurrect&lt;/code&gt;&amp;nbsp;Plugin&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;The&amp;nbsp;&lt;code&gt;tmux-resurrect&lt;/code&gt;&amp;nbsp;plugin saves all session details, including window and pane layouts, current working directories, and even running programs, to a file that can be restored later.&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;1. Installation (using Tmux Plugin Manager - TPM)&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div style="text-align: left;"&gt;Install TPM first if you don't have it. Instructions can be found on the&amp;nbsp;&lt;a href="https://draft.blogger.com/blog/post/edit/860127417772445812/8061942748622381511#"&gt;TPM GitHub page&lt;/a&gt;.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
 
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;p style="text-align: left;"&gt;&amp;nbsp;Add the&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux-resurrect&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;plugin to your&amp;nbsp;&lt;code style="background-color: #fcff01;"&gt;&lt;b&gt;~/.tmux.conf&lt;/b&gt;&lt;/code&gt;&amp;nbsp;file:&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
 
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;pre style="text-align: left;"&gt;&lt;code&gt;&lt;strong&gt;set -g @plugin 'tmux-plugins/tmux-resurrect'&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
 
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div style="text-align: left;"&gt;Run the plugin manager by pressing&amp;nbsp;&lt;span style="background-color: #fcff01;"&gt;&lt;code&gt;&lt;strong&gt;prefix + I&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;&lt;/span&gt;(capital I, where&amp;nbsp;&lt;code&gt;prefix&lt;/code&gt;&amp;nbsp;is&amp;nbsp;&lt;code&gt;&lt;strong style="background-color: #fcff01;"&gt;Ctrl + b&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;by default) inside a&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;session to fetch and source the plugin.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;p style="text-align: left;"&gt;&amp;nbsp;2. Saving the Layout&lt;/p&gt;&lt;/blockquote&gt;
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div style="text-align: left;"&gt;To manually&amp;nbsp;save&amp;nbsp;your current&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;environment, press&amp;nbsp;&lt;span style="background-color: #fcff01;"&gt;&lt;code&gt;p&lt;/code&gt;&lt;code&gt;refix + &lt;strong&gt;Ctrl + s&lt;/strong&gt;&lt;/code&gt;&lt;/span&gt;.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div style="text-align: left;"&gt;A notification message&amp;nbsp;&lt;code&gt;'tmuxenvironmentsaved'&lt;/code&gt;&amp;nbsp;will briefly appear in the status bar.&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;p style="text-align: left;"&gt;&amp;nbsp;3.&amp;nbsp;Restoring&amp;nbsp;the Layout&lt;/p&gt;&lt;/blockquote&gt;
 
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div style="text-align: left;"&gt;To restore the last saved environment, press&amp;nbsp;&lt;code style="background-color: #fcff01;"&gt;prefix + &lt;strong&gt;Ctrl + r&lt;/strong&gt;&lt;/code&gt;.&lt;/div&gt;&lt;/blockquote&gt;
&lt;blockquote style="border-color: currentcolor; border-image: none; border-style: none; border-width: medium; border: none; margin: 0px 0px 0px 40px; padding: 0px;"&gt;&lt;div style="text-align: left;"&gt;The saved sessions, windows, and pane layouts will be restored.&lt;/div&gt;&lt;/blockquote&gt;
 
 
&lt;p&gt;&amp;nbsp;Alternative Methods&lt;/p&gt;
 
 
&lt;div&gt;Automatic Saving/Restoring: For continuous, automatic saving (e.g., every 15 minutes) and &lt;b&gt;automatic restoration on startup&lt;/b&gt;, you can use the complementary&lt;b&gt;&amp;nbsp;&lt;code&gt;tmux-continuum&lt;/code&gt;&lt;/b&gt;&amp;nbsp;plugin alongside&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux-resurrect&lt;/strong&gt;&lt;/code&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Add&amp;nbsp;&lt;code&gt;&lt;strong&gt;set -g @plugin 'tmux-plugins/tmux-continuum'&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;to your&amp;nbsp;&lt;code&gt;~/.tmux.conf&lt;/code&gt;&lt;/div&gt;
 
 
&lt;p&gt;&amp;nbsp;and press&amp;nbsp;&lt;code&gt;&lt;strong&gt;prefix + I&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;to install it.&lt;/p&gt;
 
 
&lt;div&gt;Scripting: You can also write a custom bash script that uses&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;commands to recreate a specific, predefined layout.&lt;/div&gt;
 
 
&lt;p&gt;&amp;nbsp;The&amp;nbsp;&lt;code&gt;&lt;strong&gt;list-windows&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;command can display layout data that you can use in your scripts.&lt;/p&gt;
 
 
&lt;div&gt;Tmuxinator/Tmuxp: For project-specific layouts defined in YAML files, tools like&amp;nbsp;&lt;a href="https://draft.blogger.com/blog/post/edit/860127417772445812/8061942748622381511#"&gt;Tmuxinator&lt;/a&gt;&amp;nbsp;or&amp;nbsp;Tmuxp&amp;nbsp;can be used to launch predefined workspaces with a single command.&lt;/div&gt;
 
&lt;p&gt;--------------------------------------------------------------&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;3. how to change horizontal split to vertical split in tmux&lt;/h3&gt;
&lt;/div&gt;
 
&lt;div&gt;You can change an existing horizontal split to a vertical split in tmux by&amp;nbsp;&lt;mark&gt;cycling through the preset layouts&amp;nbsp;with a keyboard shortcut or by using the&amp;nbsp;&lt;code&gt;select-layout&lt;/code&gt;&amp;nbsp;command&lt;/mark&gt;. There is no direct command to "transpose" an existing single horizontal split to a single vertical one while keeping the same panes.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;Method 1: Cycle through preset layouts&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;The quickest method is to use the default keybinding to cycle through the available window layouts. This will rearrange your panes into one of the predefined configurations, including&amp;nbsp;&lt;code&gt;even-horizontal&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;even-vertical&lt;/code&gt;.&lt;/div&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Press your&amp;nbsp;&lt;strong&gt;prefix &lt;/strong&gt;key&amp;nbsp;(by default,&amp;nbsp;&lt;code&gt;&lt;strong&gt;Ctrl + b&lt;/strong&gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Press the&amp;nbsp;spacebar&amp;nbsp;(&lt;code&gt;&lt;strong&gt;Space&lt;/strong&gt;&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;div&gt;Repeat this until you reach the desired vertical layout.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;Method 2: Use a specific preset layout command&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;If you want to apply a specific layout immediately, you can use a command or a keybinding that targets a particular preset. The default bindings for these are often mapped to&amp;nbsp;&lt;code&gt;Alt&lt;/code&gt;&amp;nbsp;(or&amp;nbsp;&lt;code&gt;Meta&lt;/code&gt;) keys combined with numbers.&lt;/div&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Press your&amp;nbsp;prefix key&amp;nbsp;(&lt;code&gt;Ctrl + B&lt;/code&gt;), release, and then press&amp;nbsp;&lt;code&gt;Alt + 2&lt;/code&gt;&amp;nbsp;to arrange panes in an&amp;nbsp;even-vertical&amp;nbsp;layout.&lt;/li&gt;
&lt;li&gt;Alternatively, you can access the tmux command prompt:
&lt;ol&gt;
&lt;li&gt;Press your&amp;nbsp;prefix key&amp;nbsp;(&lt;code&gt;&lt;strong&gt;Ctrl + b&lt;/strong&gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Press the&amp;nbsp;colon key&amp;nbsp;(&lt;code&gt;:&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Type&amp;nbsp;&lt;code&gt;&lt;strong&gt;select-layout even-vertical&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;and press&amp;nbsp;&lt;code&gt;Enter or&amp;nbsp;&lt;/code&gt;&lt;strong&gt;select-layout even-&lt;code&gt;horizontal&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;div&gt;Method 3: Move a pane to create a vertical split (for specific cases)&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;If you have a complex layout and want more control over which pane goes where, you can move specific panes. This is more involved and generally requires using the command line within tmux.&lt;/div&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Identify pane numbers: Press your&amp;nbsp;&lt;strong&gt;prefix +&lt;/strong&gt;&amp;nbsp;&lt;code&gt;&lt;strong&gt;Q&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;to briefly display pane numbers.&lt;/li&gt;
&lt;li&gt;Use&amp;nbsp;&lt;code&gt;swap-pane&lt;/code&gt;: For example, to swap the current pane's position with an "up" or "down" pane in the index order, press your&amp;nbsp;&lt;code&gt;&lt;strong&gt;&lt;strong&gt;prefix &lt;/strong&gt;+ b&lt;/strong&gt;&lt;/code&gt; followed by&amp;nbsp;&lt;code&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;div&gt;For a full explanation of advanced options, including how to configure custom key bindings in your&amp;nbsp;&lt;code&gt;~/.tmux.conf&lt;/code&gt;&amp;nbsp;file, you can consult the&amp;nbsp;tmux man page.&lt;/div&gt;
&lt;/div&gt;
 
&lt;div&gt;--------------------------------------&lt;/div&gt;
&lt;h3&gt;4. how to add horizontal and vertical splits in tmux + key bindings&lt;/h3&gt;
 
&lt;h3&gt;Tmux Split Pane Keybindings&lt;/h3&gt;
 
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Vertical Split (Side-by-Side):&amp;nbsp;Press&amp;nbsp;&lt;strong&gt;prefix &lt;/strong&gt;&amp;nbsp;then&amp;nbsp;&lt;code&gt;&lt;strong&gt;%&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Horizontal Split (Top/Bottom):&amp;nbsp;Press&amp;nbsp;&lt;strong&gt;prefix &lt;/strong&gt;&amp;nbsp;then&amp;nbsp;&lt;code&gt;&lt;strong&gt;"&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Close Current Pane:&amp;nbsp;Press&amp;nbsp;&lt;strong&gt;prefix &lt;/strong&gt;&amp;nbsp;then&amp;nbsp;&lt;code&gt;&lt;strong&gt;x&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Switch Between Panes:&amp;nbsp;Press&amp;nbsp;&lt;strong&gt;prefix &lt;/strong&gt;&amp;nbsp;then &lt;strong&gt;arrow keys&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Toggle Layouts:&amp;nbsp;Press&amp;nbsp;&lt;strong&gt;&lt;strong&gt;prefix &lt;/strong&gt;&amp;nbsp;&lt;/strong&gt;then&amp;nbsp;&lt;strong&gt;Space &lt;/strong&gt;to cycle through layout arrangements.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
 
&lt;div&gt;Command Line Alternatives&lt;/div&gt;
&lt;div&gt;You can also run these commands directly in your terminal or via the&amp;nbsp;&lt;code&gt;tmux&lt;/code&gt;&amp;nbsp;command prompt (&lt;strong&gt;prefix &lt;/strong&gt;followed by&amp;nbsp;&lt;code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/code&gt;):&lt;/div&gt;
 
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Vertical:&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux split-window -v&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Horizontal:&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux split-window -h&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
 
&lt;div&gt;Customizing Key bindings&lt;/div&gt;
&lt;div&gt;To make splits more intuitive (e.g., using&amp;nbsp;&lt;code&gt;|&lt;/code&gt;&amp;nbsp;for vertical and&amp;nbsp;&lt;code&gt;-&lt;/code&gt;&amp;nbsp;for horizontal), add these to your&amp;nbsp;&lt;code&gt;&lt;strong&gt;~/.tmux.conf&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;file:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;creating new windows&lt;/strong&gt;:&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;bind | split-window -h&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;bind - split-window -v&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;&lt;strong&gt;changing the layout&lt;/strong&gt; (evenly - all windows will be in the same size!):&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;bind H select-layout even-horizontal&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;bind V select-layout even-vertical&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;
accidentally i found similar article on LinkedIn &lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;accidentally i found similar article on LinkedIn &lt;a href="https://www.linkedin.com/pulse/save-tmux-sections-automatically-zhenguo-zhang-nbz5c/"&gt;link&lt;/a&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3&gt;&lt;code&gt;&lt;strong&gt;5. How to exit tmux but leave session working&lt;/strong&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt; Press &lt;strong&gt;prefix &lt;/strong&gt;then &lt;strong&gt;d&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;&lt;strong&gt;6. How to attach session to tmux&lt;/strong&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt; in console type &lt;strong&gt;tmux attach&lt;/strong&gt;if you have only one session or&lt;br /&gt;&lt;strong&gt;tmux attach -t &amp;lt;session_number/session_name&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;&lt;strong&gt;7. How to know how many sessions&amp;nbsp;you have&lt;/strong&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt; type&amp;nbsp;in console &lt;strong&gt;tmux list-sessions &lt;/strong&gt;or&lt;strong&gt; tmux ls&lt;/strong&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;&lt;strong&gt;8. How to kill sessions&lt;/strong&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Press your &lt;strong&gt;prefix&lt;/strong&gt;key, then type&lt;strong&gt;&amp;nbsp;&lt;code&gt;:kill-session&lt;/code&gt;&amp;nbsp;&lt;/strong&gt;and press&amp;nbsp;&lt;code&gt;Enter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Alternatively, you can press the &lt;strong&gt;prefix &lt;/strong&gt;key followed by&amp;nbsp;&lt;code&gt;&lt;strong&gt;&amp;amp; &lt;/strong&gt;&lt;/code&gt;This prompts for confirmation to close the current window, which in turn kills the session if it's the last window.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Kill a specific session (by name/number) from your current session&lt;/strong&gt;:&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Press your &lt;strong&gt;prefix &lt;/strong&gt;key, then type&amp;nbsp;&lt;code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;This opens the tmux command prompt.&lt;/li&gt;
&lt;li&gt;Type&amp;nbsp;&lt;code&gt;&lt;strong&gt;kill-session -t &amp;lt;session-name&amp;gt;&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;and press&amp;nbsp;&lt;code&gt;Enter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;First, you may want to list sessions to find the exact name/number using the command&amp;nbsp;&lt;code&gt;&lt;strong&gt;:list-sessions&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;or the shortcut&amp;nbsp;&lt;code&gt;&lt;strong&gt;Prefix + s&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Kill&amp;nbsp;all other sessions except the current one&lt;/strong&gt;:&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Press your &lt;strong&gt;prefix &lt;/strong&gt;key, then type&amp;nbsp;&lt;code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Type&lt;strong&gt;&amp;nbsp;&lt;code&gt;kill-session -a&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;and press&amp;nbsp;&lt;code&gt;&lt;strong&gt;Enter&lt;/strong&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;Pressing&amp;nbsp;&lt;strong&gt;prefix +&lt;/strong&gt;&lt;strong&gt;&amp;amp;&lt;/strong&gt; prompts for confirmation then kills (closes) the current window. All panes in the window are killed at the same time.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;&lt;strong&gt;prefix +&lt;/strong&gt;&amp;nbsp;x&lt;/strong&gt;kills only the active pane. These are bound to the kill-window and kill-pane commands.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3&gt;&lt;strong&gt;9. How to switch between sessions&lt;/strong&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Navigate between sessions using keybindings&lt;/strong&gt;:&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Press&amp;nbsp;&lt;code&gt;&lt;strong&gt;Prefix + s&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;to open an interactive menu showing &lt;strong&gt;all sessions&lt;/strong&gt;, &lt;strong&gt;windows&lt;/strong&gt;, and &lt;strong&gt;panes&lt;/strong&gt;. Use arrow keys to navigate and press&amp;nbsp;&lt;code&gt;Enter&lt;/code&gt;&amp;nbsp;to switch.&lt;/li&gt;
&lt;li&gt;Press&amp;nbsp;&lt;code&gt;&lt;strong&gt;Prefix + (&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;to switch to the &lt;strong&gt;previous&lt;/strong&gt; session.&lt;/li&gt;
&lt;li&gt;Press&lt;strong&gt;&amp;nbsp;&lt;code&gt;Prefix + )&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;to switch to the &lt;strong&gt;next &lt;/strong&gt;session.&lt;/li&gt;
&lt;li&gt;Press&amp;nbsp;&lt;code&gt;&lt;strong&gt;Prefix + L&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;(capital L) to switch to the last used session, functioning like an "alt-tab" for sessions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;Switch to a specific session by name&lt;/strong&gt;:&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Press your prefix key, then type&amp;nbsp;&lt;code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Type&amp;nbsp;&lt;code&gt;&lt;strong&gt;switch-client -t &amp;lt;session-name&amp;gt;&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;and press&amp;nbsp;&lt;code&gt;&lt;strong&gt;Enter&lt;/strong&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;10. How to rename sessions and panes (panes are small part of the window - splatted in tmux)&lt;/h3&gt;
 
&lt;div&gt;Naming Sessions and Panes&lt;/div&gt;
&lt;div&gt;1. Use these commands or shortcuts to provide descriptive names:&lt;/div&gt;
 
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Rename a Session&lt;/em&gt;&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Shortcut&lt;/em&gt;&lt;/strong&gt;: Press&amp;nbsp;&lt;strong&gt;&lt;code&gt;Prefix&lt;/code&gt;&amp;nbsp;+&amp;nbsp;&lt;code&gt;$&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Command&lt;/strong&gt;: Use&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux rename-session -t current_name new_name&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;from the shell.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Rename a Pane&lt;/em&gt;&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Command&lt;/strong&gt;: Enter&amp;nbsp;&lt;strong&gt;&lt;code&gt;Prefix&lt;/code&gt;&amp;nbsp;+&amp;nbsp;&lt;code&gt;:&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;then type&amp;nbsp;&lt;code&gt;&lt;strong&gt;select-pane -T "your_pane_name"&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable Display&lt;/strong&gt;: To actually see these names, you must enable pane borders in your&amp;nbsp;&lt;code&gt;~/.tmux.conf&lt;/code&gt;:
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;&lt;strong&gt;set -g pane-border-status top
set -g pane-border-format " [ #P #T ] "&lt;/strong&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;Use code with caution.&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note&lt;/strong&gt;: Some shells or programs may overwrite these titles automatically.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
 
&lt;div&gt;2. Switching Interactively&lt;/div&gt;
&lt;div&gt;The most efficient way to switch between named items is through the built-in tree view:&lt;/div&gt;
 
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interactive Tree View&lt;/strong&gt;: Press&amp;nbsp;&lt;strong&gt;&lt;strong&gt;prefix &lt;/strong&gt;+&amp;nbsp;&lt;code&gt;w&lt;/code&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;This opens a navigable list of all&amp;nbsp;&lt;strong&gt;sessions&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;windows&lt;/strong&gt;, and&amp;nbsp;&lt;strong&gt;panes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use&amp;nbsp;&lt;strong&gt;Arrow Keys&lt;/strong&gt;&amp;nbsp;or&amp;nbsp;&lt;strong&gt;j / k&lt;/strong&gt;&amp;nbsp;to move through the list.&lt;/li&gt;
&lt;li&gt;Press&amp;nbsp;&lt;strong&gt;Enter&lt;/strong&gt;&amp;nbsp;to jump to the selected pane.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Display Pane Numbers&lt;/strong&gt;: Press&amp;nbsp;&lt;strong&gt;prefix &lt;/strong&gt;+&amp;nbsp;&lt;code&gt;&lt;strong&gt;q&lt;/strong&gt;&lt;/code&gt;. Large numbers will appear briefly over each pane; type the corresponding number to jump to it instantly.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
 
&lt;div&gt;3. Switching by Name&lt;/div&gt;
 
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sessions&lt;/strong&gt;: Use&amp;nbsp;&lt;strong&gt;&lt;strong&gt;prefix &lt;/strong&gt;+&amp;nbsp;&lt;code&gt;s&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;to show an interactive session-only list, or use&amp;nbsp;&lt;code&gt;&lt;strong&gt;tmux switch-client -t session_name&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;from the command prompt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;: Use&amp;nbsp;&lt;strong&gt;&lt;strong&gt;prefix &lt;/strong&gt;+&amp;nbsp;&lt;code&gt;f&lt;/code&gt;&lt;/strong&gt;&amp;nbsp;to search for a window by its name.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3&gt;11.&amp;nbsp;How to reload tmux configuration from tmux&lt;/h3&gt;
 
&lt;div&gt;
&lt;div&gt;1. From within a tmux session&lt;/div&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Enter command mode:&lt;/strong&gt;&amp;nbsp;Press the &lt;strong&gt;prefix&amp;nbsp;&lt;/strong&gt;keys;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type the command:&lt;/strong&gt;&amp;nbsp;Press&amp;nbsp;&lt;code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;(colon) to bring up the command prompt at the bottom of the screen;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execute the source command:&lt;/strong&gt;&amp;nbsp;Type&amp;nbsp;&lt;strong&gt;&lt;code&gt;source-file ~/.tmux.conf&lt;/code&gt;&amp;nbsp;&lt;/strong&gt;(or&amp;nbsp;&lt;code&gt;&lt;strong&gt;source ~/.tmux.conf&lt;/strong&gt;&lt;/code&gt;&amp;nbsp;in most modern versions) and press&amp;nbsp;&lt;code&gt;&lt;strong&gt;Enter&lt;/strong&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
 
&lt;div&gt;
&lt;div&gt;2. From your shell/terminal (outside of tmux)&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;Run the following command in your terminal prompt:&lt;/div&gt;
&lt;/div&gt;
 
 
 
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code&gt;&lt;strong&gt;tmux source-file ~/.tmux.conf&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/code&gt;&lt;h3 style="text-align: left;"&gt;&lt;code&gt;&lt;strong&gt;&lt;span style="font-family: times;"&gt;12. How to enable Digital Clocks in the tmux&lt;/span&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/h3&gt;&lt;code&gt;&lt;strong&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Press Ctrl + B (Prefix key combo) keys and &lt;span style="background-color: #fcff01;"&gt;t&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
 
 
 
&lt;div&gt;&lt;strong&gt;Additional useful key bindings (add them in .tmux.conf):&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Quick-Toggle Pane Titles:&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;bind &lt;strong&gt;b&lt;/strong&gt; set-option -g pane-border-status&lt;/div&gt;
 
&lt;p&gt;&lt;strong&gt;Renaming pane without typing command in command line:&lt;br /&gt;&lt;/strong&gt; bind-key &lt;strong&gt;T&lt;/strong&gt; command-prompt -p "Pane Title:" "select-pane -T '%%'"&lt;/p&gt;
&lt;p&gt;&lt;strong style="background-color: #fcff01;"&gt;T&lt;/strong&gt;&lt;strong&gt;&lt;span style="background-color: #fcff01;"&gt;o reload ~/.tmux.conf file&amp;nbsp;quickly&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt; bind &lt;strong&gt;r &lt;/strong&gt;source-file ~/.tmux.conf \; display "Config reloaded!"&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjtcIFWGWEi1di5X5TaQY1l1OVDgwlab3zE7N1IvepY6hHK_7XISPPpbgShCqOmmoOIUIW4XPpkEQr1dz-WC-z-G7vsbLZemCXdLLD814WWB8uLNMuzR973StpSF6-4eYtFHRaJEGFxWLN1a-dCKFrMcJ_GQjErk1UAM1r0B7wHBWKXcsSD0dxHwQwdUR/s72-w640-h426-c/f28ff519-30a2-4a63-b3d7-972339880069.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Adding not root user to Docker container</title><link>http://i-sane.blogspot.com/2026/02/adding-not-root-user-to-docker-container.html</link><category>1000</category><category>add</category><category>container</category><category>docker</category><category>root</category><category>user</category><category>username</category><author>noreply@blogger.com (Adv User)</author><pubDate>Thu, 5 Feb 2026 22:45:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-8552173066525633876</guid><description>&lt;h1 style="text-align: left;"&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp;Adding not root user to Docker container&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp;in docker file:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;ARG USERNAME=containeruser&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;ARG USER_UID=1000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;ARG USER_GID=$USER_UID&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;RUN groupadd --gid $USER_GID $USERNAME \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp; &amp;amp;&amp;amp; useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp; &amp;amp;&amp;amp; chown -R $USER_UID:$USER_GID /home/$USERNAME&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp; # [Optional] Add sudo support if needed&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp; # &amp;amp;&amp;amp; apt-get update &amp;amp;&amp;amp; apt-get install -y sudo \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp; # &amp;amp;&amp;amp; echo $USERNAME ALL=(root) NOPASSWD:ALL &amp;gt; /etc/sudoers.d/$USERNAME \&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp; &amp;nbsp; # &amp;amp;&amp;amp; chmod 0440 /etc/sudoers.d/$USERNAME&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;# Set the default user for all processes in the container (optional, but ensures everything runs as this user)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Roboto;"&gt;# USER $USERNAME&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Visual representation - Timeline of a React Component With Hooks (link)</title><link>http://i-sane.blogspot.com/2026/01/visual-representation-timeline-of-react.html</link><category>guide</category><category>hooks</category><category>React</category><category>visual guide</category><author>noreply@blogger.com (Adv User)</author><pubDate>Mon, 19 Jan 2026 08:14:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-891616083030781561</guid><description>&lt;h1 style="text-align: left;"&gt;Visual representation - Timeline of a React Component With Hooks (link)&lt;/h1&gt;&lt;p&gt;&lt;a href="https://julesblom.com/writing/react-hook-component-timeline" rel="nofollow" target="_blank"&gt;Timeline of a React Component With Hooks&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>30 маловідомих, але корисних команд Linux (repost)</title><link>http://i-sane.blogspot.com/2026/01/30-linux-repost.html</link><category>cat</category><category>commands</category><category>find</category><category>Linux</category><category>ls</category><category>ps</category><category>repost</category><category>stat</category><category>sudo</category><category>useful</category><author>noreply@blogger.com (Adv User)</author><pubDate>Fri, 16 Jan 2026 05:07:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-8551726238747504042</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;header class="post__header" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;h1 class="post__title" style="box-sizing: border-box; font-size: 48px; line-height: 1.22917; margin: 27px 0px 56px; padding: 0px; word-break: break-word;"&gt;30 маловідомих, але корисних команд Linux&lt;/h1&gt;&lt;/header&gt;&lt;figure class="post__image" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 0px 0px 20px; padding: 0px; word-break: break-word;"&gt;Саме тому ми зібрали&amp;nbsp;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;31 команд&lt;/strong&gt;, які не згадуються в кожному гайді, зате дійсно виручають. Особливо, коли часу обмаль, а результат потрібен вже.&lt;/figure&gt;&lt;figure class="post__image" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 0px 0px 20px; padding: 0px; word-break: break-word;"&gt;lsd - те саме що ls але краще&lt;br /&gt;&lt;span style="background-color: #f0f2f5; color: #0a0a0a; font-family: monospace; font-size: 14px;"&gt;lsd -l --permission octal --&amp;gt; тільки для нових версій lsd &amp;gt; 1.1.0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/figure&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCmknw5dkjQVSRz2l51OHSp6PrbAkSeXC0QnweuFEgOHenf_t2bEYW9uNF3c_O0kQGYIXV7POfHAKvHGC4bX7wlE2x7AmQYx0LSZKJ8iaNKa18TtTZZ7vKtGCs1lBCM_Ggv3voqnDkXuZ3S2AlBDC29IoIkW-fBSKugqAwNpkSHVVXQah_U4J3Tm0eEoED/s895/G6xOI5cXwAAMyTY.jfif" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="746" data-original-width="895" height="534" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCmknw5dkjQVSRz2l51OHSp6PrbAkSeXC0QnweuFEgOHenf_t2bEYW9uNF3c_O0kQGYIXV7POfHAKvHGC4bX7wlE2x7AmQYx0LSZKJ8iaNKa18TtTZZ7vKtGCs1lBCM_Ggv3voqnDkXuZ3S2AlBDC29IoIkW-fBSKugqAwNpkSHVVXQah_U4J3Tm0eEoED/w640-h534/G6xOI5cXwAAMyTY.jfif" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;Базові трюки з терміналом&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Тут зібрали ті маленькі команди, які часто рятують нерви. Повторити, очистити, знайти чи навіть написати.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Повтор останньої команди&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Забув додати&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;sudo&lt;/code&gt;&amp;nbsp;та отримали «Permission denied»? Не переписуй всю команду заново — просто використай:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;sudo !!&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Очищення екрана&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Коли термінал заповнений виводом і хочеться почати з чистого аркуша, натисни&amp;nbsp;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;Ctrl+L&lt;/code&gt;, щоб миттєво очистити екран.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Редагування поточної команди в редакторі&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Якщо команда занадто довга або складна, натисни&amp;nbsp;&lt;span style="background-color: #fcff01;"&gt;&lt;b&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;Ctrl+x&lt;/code&gt;&amp;nbsp;+&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;e&lt;/code&gt;,&lt;/b&gt;&lt;/span&gt; щоб відкрити її в текстовому редакторі для зручного редагування.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Коротка довідка по команді&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Замість читання довгих man-сторінок, юзай&amp;nbsp;&lt;span style="background-color: #fcff01;"&gt;&lt;b&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;tldr&lt;/code&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;для отримання коротких прикладів використання команди:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Автоматичне оновлення виводу команди&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Хочеш спостерігати за змінами в системі у реальному часі? Ця команда дозволить періодично виконувати іншу команду і показувати її вивід:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b style="background-color: #fcff01;"&gt;watch -n 1 'df -h'&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Нескінченне повторення тексту&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Просто виконай:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;yes "I agree"&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;Моніторинг системи та діагностика&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Коли щось не так із системою — важливо мати під рукою прості інструменти перевірки. Тому замість нудних копань у логах тримай ці команди.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Версія твого дистрибутива&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Щоб знайти таку інформацію, достатньо ввести таку команду:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;lsb_release -a&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перегляд деталей файлу&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Хочеш дізнатись, коли файл востаннє змінювали, який у нього розмір і права доступу? Просто звернись до&amp;nbsp;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;stat file.txt&lt;/b&gt;&lt;/code&gt;.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перегляд дерева процесів&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Команда&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;&lt;span style="background-color: #fcff01;"&gt;pstree&lt;/span&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;відображає всі запущені процеси у вигляді дерева, що допомагає зрозуміти їх ієрархію.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перевірка відкритих портів&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Щоб швидко глянути, які порти відкриті і які з’єднання активні, використовуй&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b style="background-color: #fcff01;"&gt;ss -tuln&lt;/b&gt;&lt;/code&gt;. Мінімалістично й інформативно.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Історія входів у систему&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;span style="color: #282828;"&gt;Забагато підозрілої активності?&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;last&lt;/code&gt;&lt;span style="color: #fcff01;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #282828;"&gt;покаже історію входів користувачів і трохи заспокоїть (або навпаки).&lt;/span&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Командний центр продуктивності&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Команда&amp;nbsp;&lt;b style="background-color: #fcff01;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;dstat&lt;/code&gt;&amp;nbsp;&lt;/b&gt;показує навантаження на CPU, диски, мережу. Ідеально, коли треба зрозуміти, чому сервер тупить.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Виведення усіх доступних змінних середовища&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Застосуй команду&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b style="background-color: #fcff01;"&gt;printenv&lt;/b&gt;&lt;/code&gt;, коли потрібно розібратись, які змінні зараз активні.&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;Робота з файлами та текстом&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Ці команди допоможуть краще тримати файли та текст під контролем і працювати з ними швидко та красиво.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Номери рядків у файлі&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Додай номери рядкам до вмісту файлу цією командою:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;nl file.txt&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Форматування виводу у вигляді таблиці&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Комбінація&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;cat і column&lt;/code&gt;&amp;nbsp;дозволяє красиво це зробити:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b style="background-color: #fcff01;"&gt;cat file.txt | column -t&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Запис виводу у файлі&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Хочеш бачити результат у терміналі і мати його під рукою в файлі?&amp;nbsp;&lt;span style="background-color: #fcff01;"&gt;&lt;b&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;tee&lt;/code&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;— твій друг:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;echo "This is a test message." | tee file.txt&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Кількість рядків у&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; font-weight: 500; margin: 0px; padding: 0px; word-break: break-word;"&gt;.txt&lt;/code&gt;&amp;nbsp;файлах&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Краще випити кави, ніж рахувати кожен рядок вручну. Замість цього використай:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;find . -name "*.txt" | xargs wc -l&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Архівування каталогу зі збереженням структури&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;tar&lt;/b&gt;&lt;/code&gt;&amp;nbsp;— класика. Але з ключами&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;czvf&lt;/code&gt;&amp;nbsp;одразу створюєш&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;.tar.gz&lt;/code&gt;-архів поточної директорії:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;tar czvf archive.tar.gz folder/&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;Мережеві команди&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Якщо щось не пінгується, не відкривається чи не працює — час перевірити мережу. Тут зібрали команди, з якими це можна зробити за секунди.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перевірка маршруту до сервера&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;mtr&lt;/code&gt;&amp;nbsp;поєднує функції ping та traceroute, показуючи стан мережі в реальному часі:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;mtr&amp;nbsp;&lt;a data-wpel-link="external" href="https://google.com/" rel="noopener nofollow" style="box-sizing: border-box; color: #00c1b3; margin: 0px; padding: 0px; text-decoration-line: none; transition: color 0.3s; word-break: break-word;" target="_blank" title=""&gt;google.com&lt;/a&gt;&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перевірка порту&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;nc&lt;/code&gt;&amp;nbsp;(netcat) дозволяє перевірити, чи відкритий певний порт на сервері:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;nc -zv localhost 80&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Дізнатися свою IP-адресу&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;З цією командою зможеш легко це зробити:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;curl&amp;nbsp;&lt;a data-wpel-link="external" href="http://ifconfig.me/" rel="noopener nofollow" style="box-sizing: border-box; color: #00c1b3; margin: 0px; padding: 0px; text-decoration-line: none; transition: color 0.3s; word-break: break-word;" target="_blank" title=""&gt;ifconfig.me&lt;/a&gt;&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Хочеш знати, куди реально веде домен?&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;dig&lt;/code&gt;&amp;nbsp;копає глибоко:&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перевірка DNS-запису домену&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;dig&amp;nbsp;&lt;a data-wpel-link="external" href="https://google.com/" rel="noopener nofollow" style="box-sizing: border-box; color: #00c1b3; margin: 0px; padding: 0px; text-decoration-line: none; transition: color 0.3s; word-break: break-word;" target="_blank" title=""&gt;google.com&lt;/a&gt;&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;h2 class="wp-block-heading" style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 40px; line-height: 1.2; margin: 60px 0px 40px; padding: 0px; word-break: break-word;"&gt;Команди для DevOps-інженерів і системних адміністраторів&lt;/h2&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Трохи різного — від HTTP-сервера до перегляду вмісту&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;.deb&lt;/code&gt;-пакетів. Це утиліти, які часто лишаються в тіні, але дуже виручають у буднях.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Запуск простого HTTP-сервера&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Потрібно роздати файли? python допоможе — піднімає HTTP-сервер у поточній директорії на порті 8000:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;for Python 2:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;python -m SimpleHTTPServer&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;for Python 3:&lt;/code&gt;&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;python3 -m http.server&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Симулятор набору тексту&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;pv&lt;/code&gt;&amp;nbsp;може симулювати повільний набір тексту:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;echo "Linux is awesome" | pv -qL 10&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перегляд змонтованих файлових систем у вигляді таблиці&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Комбінація&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;mount&lt;/code&gt;&amp;nbsp;і&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;column&lt;/code&gt;&amp;nbsp;дозволяє зручно все відобразити:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;mount | column -t&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Пошук символічних посилань&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;find&lt;/code&gt;&amp;nbsp;допоможе знайти всі символічні посилання в поточному каталозі та підкаталогах:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;find . -type l&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перегляд вмісту&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; font-weight: 500; margin: 0px; padding: 0px; word-break: break-word;"&gt;.deb&lt;/code&gt;-пакета&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Ти можеш переглянути вміст Debian-пакета без його встановлення:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;dpkg-deb -c package.deb&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перегляд використання мережі&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;span style="background-color: #fcff01;"&gt;&lt;b&gt;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;lsof&lt;/code&gt;&amp;nbsp;з параметром&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;-i&lt;/code&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp;показує процеси, які використовують мережеві з’єднання.&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Пошук команди в історії&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Не пам’ятаєш, як саме тоді писав ту круту команду? Шукай по історії:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;history | grep something&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;&lt;ul style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; list-style: none; margin: 60px 0px; padding: 0px; word-break: break-word;"&gt;&lt;li style="box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 50px; position: relative; word-break: break-word;"&gt;&amp;nbsp;&lt;strong style="box-sizing: border-box; margin: 0px; padding: 0px; word-break: break-word;"&gt;Перегляд доступних команд в системі&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;Не лише&amp;nbsp;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;alias&lt;/b&gt;&lt;/code&gt;, а взагалі всі виконавчі команди, що є у&amp;nbsp;&lt;code style="box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;$PATH&lt;/code&gt;. Ідеально, коли не пам’ятаєш точну назву або хочеш швидкий огляд:&lt;/p&gt;&lt;p style="box-sizing: border-box; color: #282828; font-family: Montserrat, sans-serif; font-size: 16px; margin: 26px 0px; padding: 0px; word-break: break-word;"&gt;&lt;code style="background-color: #fcff01; box-sizing: border-box; font-family: &amp;quot;IBM Plex Mono&amp;quot;, monospace; margin: 0px; padding: 0px; word-break: break-word;"&gt;&lt;b&gt;compgen -c&lt;/b&gt;&lt;/code&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCmknw5dkjQVSRz2l51OHSp6PrbAkSeXC0QnweuFEgOHenf_t2bEYW9uNF3c_O0kQGYIXV7POfHAKvHGC4bX7wlE2x7AmQYx0LSZKJ8iaNKa18TtTZZ7vKtGCs1lBCM_Ggv3voqnDkXuZ3S2AlBDC29IoIkW-fBSKugqAwNpkSHVVXQah_U4J3Tm0eEoED/s72-w640-h534-c/G6xOI5cXwAAMyTY.jfif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Advanced work with git stash</title><link>http://i-sane.blogspot.com/2026/01/advanced-work-with-git-stash.html</link><category>advanced</category><category>Git</category><category>howto</category><category>stash</category><author>noreply@blogger.com (Adv User)</author><pubDate>Fri, 16 Jan 2026 01:29:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-4889985555594702365</guid><description>&lt;div data-complete="true" data-hveid="CAEIAhAA" data-processed="true" data-sfc-cp=""&gt;&lt;h1 style="text-align: center;"&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;Advanced work with git stash&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div data-complete="true" data-hveid="CAEIAhAA" data-processed="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;In Git, the most recent stash is&amp;nbsp;&lt;strong data-complete="true" data-processed="true"&gt;always&lt;/strong&gt;&amp;nbsp;assigned the index&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;0&lt;/code&gt;, appearing as&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;stash@{0}&lt;/code&gt;. When you create a new stash, all existing stashes are pushed down the stack (e.g., the previous&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;0&lt;/code&gt;&amp;nbsp;becomes&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;1&lt;/code&gt;).&lt;span data-complete="true" data-processed="true" data-wiz-uids="YOqsme_i,YOqsme_j"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-complete="true" data-hveid="CAEIAhAA" data-processed="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;strong&gt;&lt;span style="font-family: Roboto;"&gt;1. Identify which stash is yours&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div data-complete="true" data-hveid="CAEIBBAA" data-processed="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;To see all your stashed entries and their assigned numbers, use:&lt;br data-complete="true" data-processed="true" data-serialized-params="[]" /&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;git stash list&lt;/code&gt;&lt;span data-complete="true" data-processed="true" data-wiz-uids="YOqsme_x,YOqsme_y"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-complete="true" data-hveid="CAEIBRAA" data-processed="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;This will output a list like this:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul data-complete="true" data-processed="true"&gt;&lt;li data-complete="true" data-hveid="CAEIBhAA" data-sae=""&gt;&lt;span data-complete="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;stash@{0}: WIP on master: 4fd1101...&lt;/code&gt;&amp;nbsp;(Latest)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CAEIBhAB" data-sae=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span data-complete="true" data-sfc-cp=""&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;stash@{1}: On develop: updated files...&lt;/code&gt;&lt;/span&gt;&lt;span data-complete="true" data-wiz-uids="YOqsme_1d,YOqsme_1e"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;strong&gt;&lt;span style="font-family: Roboto;"&gt;2. View contents without applying&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div data-complete="true" data-hveid="CAEICBAA" data-processed="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;You can inspect the contents of any stash entry using the&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;show&lt;/code&gt;&amp;nbsp;command.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul data-complete="true" data-processed="true"&gt;&lt;li data-complete="true" data-hveid="CAEIChAA" data-sae=""&gt;&lt;span data-complete="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong data-complete="true"&gt;View a file summary (stat):&lt;/strong&gt;&lt;br data-complete="true" data-serialized-params="[]" /&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;git stash show stash@{0}&lt;/code&gt;&lt;br data-complete="true" data-serialized-params="[]" /&gt;&lt;em data-complete="true"&gt;(Shows only the list of files changed and the number of insertions/deletions)&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CAEIChAB" data-sae=""&gt;&lt;span data-complete="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong data-complete="true"&gt;View full code changes (diff):&lt;/strong&gt;&lt;br data-complete="true" data-serialized-params="[]" /&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;git stash show -p stash@{0}&lt;/code&gt;&lt;br data-complete="true" data-serialized-params="[]" /&gt;&lt;em data-complete="true"&gt;(The&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;-p&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;--patch&lt;/code&gt;&amp;nbsp;flag shows the actual line-by-line code changes)&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CAEIChAC" data-sae=""&gt;&lt;span data-complete="true" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;strong data-complete="true"&gt;View untracked files:&lt;/strong&gt;&lt;br data-complete="true" data-serialized-params="[]" /&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;git stash show --include-untracked stash@{0}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CAEIChAD" data-sae=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span data-complete="true" data-sfc-cp=""&gt;&lt;strong data-complete="true"&gt;View a specific file from a stash:&lt;/strong&gt;&lt;br data-complete="true" data-serialized-params="[]" /&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;git diff stash@{0} -- path/to/file.txt&lt;/code&gt;&lt;/span&gt;&lt;span data-complete="true" data-wiz-uids="YOqsme_3o,YOqsme_3p"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp=""&gt;&lt;span data-mce-style="font-family: Roboto;" style="font-family: Roboto;"&gt;&lt;span style="font-family: Roboto;"&gt;Quick reference commands&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-complete="true" data-processed="true" data-sfc-cp="" data-ved="2ahUKEwjqjJyg_v2RAxUFGVkFHV4PLmEQ-q4QegYIAQgMEAA"&gt;&lt;table class="mce-item-table" data-animation-nesting="" data-complete="true" data-sae="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;tbody data-complete="true"&gt;&lt;tr data-complete="true" data-sfc-cp=""&gt;&lt;th colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;To do this...&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;Run this command&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr data-complete="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;List all stashes&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;git stash list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-complete="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;Peek at latest stash (summary)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;git stash show&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-complete="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;Peek at latest stash (full code)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;git stash show -p&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-complete="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;Peek at specific stash (e.g., #2)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-complete="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;code data-complete="true" data-sae="" dir="ltr"&gt;&lt;span data-mce-style="font-family: Roboto; font-size: medium;" style="font-family: Roboto; font-size: small;"&gt;&lt;span style="font-family: Roboto;"&gt;git stash show -p stash@{2}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-complete="true" data-processed="true" data-sfc-cp="" data-ved="2ahUKEwjqjJyg_v2RAxUFGVkFHV4PLmEQ-q4QegYIAQgMEAA"&gt;&lt;div class="ilZyRc R7mRQb"&gt;&lt;div data-animation-skip="true" data-ved="0CAAQ_sYPahcKEwjQ18q5_f2RAxUAAAAAHQAAAAAQFg"&gt;&lt;div class="tbIZh wQN2Jd"&gt;&lt;h4 style="text-align: left;"&gt;&lt;strong&gt;&lt;span style="font-family: Roboto;"&gt;3. create message along with git stash -p&lt;/span&gt;&lt;/strong&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div class="UYpEO"&gt;&lt;span style="font-family: Roboto;"&gt;by using the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Roboto;"&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr"&gt;&lt;b&gt;&lt;span style="font-size: medium;"&gt;push&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;subcommand with the&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr"&gt;&lt;b&gt;&lt;span style="font-size: medium;"&gt;-m&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp;(message) and&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr"&gt;&lt;b&gt;&lt;span style="font-size: medium;"&gt;-p&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;span style="font-family: Roboto;"&gt;&amp;nbsp;(patch) flags together.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div data-processed="true"&gt;&lt;div class="CKgc1d" data-complete="true" data-processed="true" data-scope-id="turn"&gt;&lt;div class="Zkbeff" data-aimmrs="true" data-complete="true" data-hveid="CAEIABAA" data-processed="true" data-subtree="aimc" data-ved="2ahUKEwifzeOE__2RAxWDMVkFHZl_LdcQ2O0OegYIAQgAEAA" data-wiz-uids="TCFvRd_2"&gt;&lt;div class="pWvJNd" data-complete="true" data-processed="true"&gt;&lt;div class="mZJni Dn7Fzd" data-container-id="main-col" data-processed="true" data-ved="2ahUKEwifzeOE__2RAxWDMVkFHZl_LdcQ3KYQegYIAQgAEAE" data-xid="VpUvz" dir="ltr"&gt;&lt;div data-container-id="5" data-processed="true"&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAEIAhAA" data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;To stash specific parts of your code with a descriptive label, use:&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAEIAhAA" data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAEIBBAA" data-processed="true" data-sfc-cp=""&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr"&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;span style="color: #2b00fe;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;git stash &lt;/span&gt;&lt;span style="color: #800180;"&gt;push &lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;-p -m&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; "&lt;/span&gt;&lt;span style="color: #93c47d;"&gt;your custom message here&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;" &lt;br /&gt;&lt;/span&gt;or&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;git stash &lt;/span&gt;&lt;span style="color: #ff00fe;"&gt;-u -m&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt; "&lt;/span&gt;&lt;span style="color: #93c47d;"&gt;message&lt;/span&gt;&lt;span style="color: #2b00fe;"&gt;"&lt;/span&gt;&amp;nbsp; &lt;span style="color: #ffa400;"&gt;//including untracked files&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAEIBBAA" data-processed="true" data-sfc-cp=""&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAEIBBAA" data-processed="true" data-sfc-cp=""&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;b&gt;4.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;b&gt;&lt;span style="font-family: Roboto;"&gt;how to show git stash {number} diff&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAEIBBAA" data-processed="true" data-sfc-cp=""&gt;&lt;ul class="KsbFXc U6u95" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhEEAA" data-processed="true" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwiAtZ6V0sWVAxU_MDQIHe_4CgUQ-7AUeggIAggACEQQAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="luLUIc_cz" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhEEAE" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="luLUIc_d2" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="luLUIc_d5" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="luLUIc_d7" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;View full diff of a specific stash&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;:&lt;/span&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhEEAI" data-sfc-cb="" data-sfc-inited="2" data-sfc-root="ep" data-wiz-uids="luLUIc_dc,luLUIc_da" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="luLUIc_d9" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" jsuid="luLUIc_dc" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;git stash show -p stash@{&lt;/span&gt;&lt;span class="tnfcCf" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(180, 89, 8);" style="border-bottom: 0px rgb(180, 89, 8); margin: 0px;"&gt;1&lt;/span&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 12px; margin: 0px;"&gt;&lt;em class="eujQNb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="yHWXO#Mkm8ud" jsuid="luLUIc_dp" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; margin: 0px;"&gt;(Replace &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="luLUIc_dq" style="border-bottom: 0.666667px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;1&lt;/code&gt; with whichever stash number you want to inspect).&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhEEAU" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="luLUIc_dt" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="luLUIc_dw" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="luLUIc_dx" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;View just the summary of changed files (diffstat)&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;:&lt;/span&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhEEAY" data-sfc-cb="" data-sfc-root="ep" data-wiz-uids="luLUIc_e2,luLUIc_e0" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="luLUIc_dz" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" jsuid="luLUIc_e2" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;git stash show stash@{&lt;/span&gt;&lt;span class="tnfcCf" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(180, 89, 8);" style="border-bottom: 0px rgb(180, 89, 8); margin: 0px;"&gt;1&lt;/span&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 12px; margin: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--TgQPHd||[]--&gt;&lt;/li&gt;&lt;!--TgQPHd||[]--&gt;&lt;/ul&gt;&lt;div class="Fsg96" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;luLUIc_fb|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="luLUIc_fb" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;hr class="j3tEEe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 32px 0px; text-decoration: none; border-bottom: 0px rgb(128, 128, 128);" data-processed="true" data-sfc-cb="" data-sfc-pl="||[]" data-sfc-root="ep" jsaction="" jscontroller="llbKvd#iOlsLd" jsuid="luLUIc_ff" style="border-bottom: 0px rgb(128, 128, 128); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; margin: 32px 0px;" /&gt;&lt;div class="Fsg96" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" jsaction="rcuQ6b:&amp;amp;luLUIc_fp|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="luLUIc_fp" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; margin: 0px;"&gt;&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;h3 style="border-bottom: 0px rgb(10, 10, 10); font-weight: 600; margin: 24px 0px 12px; text-align: left;"&gt;&lt;span style="font-family: Roboto; font-size: small;"&gt;Alternative Comparisons&lt;/span&gt;&lt;/h3&gt;&lt;div class="n6owBd awi2gc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhJEAA" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="luLUIc_gk" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 12px 0px 16px;"&gt;Depending on what you want to compare the stash against, you can also use &lt;code class="KDcb0c" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" data-sfc-cb="" data-sfc-root="ep" dir="ltr" jsaction="" jscontroller="hNviFe#redMub" jsuid="luLUIc_go" style="border-bottom: 0.666667px solid rgb(240, 242, 245); font-size: 14px; margin: 0px;"&gt;git diff&lt;!--TgQPHd||[]--&gt;&lt;/code&gt;:&lt;!--TgQPHd||[]--&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAA" data-processed="true" data-sfc-cb="" data-sfc-root="ep" data-ved="2ahUKEwiAtZ6V0sWVAxU_MDQIHe_4CgUQ-7AUeggIAggACEwQAA" jsaction="" jscontroller="mPWODf#NS0kde" jsuid="luLUIc_lz" style="border-bottom: 0px rgb(10, 10, 10); font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; margin: 12px 0px 16px;"&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAE" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="luLUIc_m0" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;span class="T286Pc" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="fly6D#d5Qebf" jsuid="luLUIc_m1" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="luLUIc_m2" style="border-bottom: 0px rgb(10, 10, 10); font-weight: 700; margin: 0px;"&gt;Compare stash to your current working directory&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;:&lt;!--TgQPHd||[]--&gt;&lt;/span&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAI" data-sfc-cb="" data-sfc-root="ep" data-wiz-uids="luLUIc_m5,luLUIc_m4" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="luLUIc_m3" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="z0e9Qd" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="vVRw1d" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 20px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 20px; margin: 0px;"&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;git diff stash@{&lt;/span&gt;&lt;span class="tnfcCf" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(180, 89, 8);" style="border-bottom: 0px rgb(180, 89, 8); font-size: 14px; margin: 0px;"&gt;1&lt;/span&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 12px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="luLUIc_ml" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; font-weight: 700; margin: 0px;"&gt;Compare stash to the tip of a specific branch (e.g., main)&lt;/span&gt;&lt;span style="font-size: 16px;"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAU" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="luLUIc_mi" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAY" data-sfc-cb="" data-sfc-root="ep" data-wiz-uids="luLUIc_mp,luLUIc_mn" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="luLUIc_mm" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" jsuid="luLUIc_mp" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;git diff stash@{&lt;/span&gt;&lt;span class="tnfcCf" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(180, 89, 8);" style="border-bottom: 0px rgb(180, 89, 8); margin: 0px;"&gt;1&lt;/span&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;} main
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 3px 0px 0px;"&gt;&lt;div class="P8PNlb" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 12px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); font-size: 12px; margin: 0px;"&gt;&lt;span class="Yjhzub" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-root="ep" jsaction="" jscontroller="zYmgkd#vvzi1e" jsuid="luLUIc_n5" style="border-bottom: 0px rgb(10, 10, 10); font-size: 16px; font-weight: 700; margin: 0px;"&gt;View the diff of a single file inside a stash&lt;/span&gt;&lt;span style="font-size: 16px;"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li class="Z1qcYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAk" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" jsaction="" jscontroller="oSLmPe#HokZ0d" jsuid="luLUIc_n0" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px 0px 12px;"&gt;&lt;div class="r1PmQe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAIIAAhMEAo" data-sfc-cb="" data-sfc-root="ep" data-wiz-uids="luLUIc_n8,luLUIc_n7" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="luLUIc_n6" style="border-bottom: 0px rgb(10, 10, 10); margin: 4px 0px 0px;"&gt;&lt;div data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0.666667px solid rgb(240, 242, 245);" style="border-bottom: 0.666667px solid rgb(240, 242, 245); margin: 0px;"&gt;&lt;div class="pCTyYe" data-copy-service-computed-style="font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" dir="ltr" style="border-bottom: 0px rgb(10, 10, 10); font-size: 14px; margin: 0px;"&gt;&lt;pre data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 14px 0px;"&gt;&lt;code data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" jsuid="luLUIc_n8" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;git diff stash@{&lt;/span&gt;&lt;span class="tnfcCf" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(180, 89, 8);" style="border-bottom: 0px rgb(180, 89, 8); margin: 0px;"&gt;1&lt;/span&gt;&lt;span class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;}^ stash@{&lt;/span&gt;&lt;span class="tnfcCf" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(180, 89, 8);" style="border-bottom: 0px rgb(180, 89, 8); margin: 0px;"&gt;1&lt;/span&gt;&lt;span aria-owns="action-menu-parent-container" class="undefined" data-copy-service-computed-style="font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" style="border-bottom: 0px rgb(10, 10, 10); margin: 0px;"&gt;} -- path/to/file.txt&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>ENV variables files load ordering</title><link>http://i-sane.blogspot.com/2026/01/env-variables-files-load-ordering.html</link><category>env</category><category>files</category><category>load</category><category>ordering</category><category>variables</category><author>noreply@blogger.com (Adv User)</author><pubDate>Tue, 13 Jan 2026 22:51:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-1410151621324113676</guid><description>&lt;p&gt;&lt;/p&gt;&lt;h1 style="text-align: left;"&gt;&amp;nbsp;ENV variables files load ordering&lt;/h1&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="font-size: 11px;"&gt;&lt;span style="font-family: Roboto;"&gt;Standard Loading Order (Highest to Lowest)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;ol data-processed="true" style="font-size: 11px;"&gt;&lt;li data-hveid="CAYQAA" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp="" style="font-family: Roboto;"&gt;&lt;code data-processed="true" dir="ltr"&gt;.env.local&lt;/code&gt;&amp;nbsp;(local overrides, all environments)&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAYQAQ" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp="" style="font-family: Roboto;"&gt;&lt;code data-processed="true" dir="ltr"&gt;.env.[mode].local&lt;/code&gt;&amp;nbsp;(local overrides, specific mode)&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAYQAg" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp="" style="font-family: Roboto;"&gt;&lt;code data-processed="true" dir="ltr"&gt;.env.[mode]&lt;/code&gt;&amp;nbsp;(e.g.,&amp;nbsp;&lt;code data-processed="true" dir="ltr"&gt;.env.development&lt;/code&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAYQAw" data-processed="true"&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;code data-processed="true" dir="ltr"&gt;.env&lt;/code&gt;&amp;nbsp;(default settings)&lt;/span&gt;&lt;span data-processed="true" data-wiz-uids="kjD0Dd_22,kjD0Dd_23"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div data-hveid="CAcQAA" data-processed="true" data-sfc-cp="" style="font-size: 11px;"&gt;&lt;em data-processed="true"&gt;&lt;span style="font-family: Roboto;"&gt;Example: If&amp;nbsp;&lt;code data-processed="true" dir="ltr"&gt;DB_HOST&lt;/code&gt;&amp;nbsp;is defined in both files, the value in&amp;nbsp;&lt;code data-processed="true" dir="ltr"&gt;.env.local&lt;/code&gt;&amp;nbsp;will be used.&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Comparison VS Code, Cursor, Windsurf, Trae, Kiro, Replit</title><link>http://i-sane.blogspot.com/2026/01/comparison-vs-code-cursor-windsurf-trae.html</link><category>AI</category><category>code</category><category>Comparison</category><category>Cursor</category><category>Editors</category><category>Kiro</category><category>Replit</category><category>Trae</category><category>VS Code</category><category>Windsurf</category><author>noreply@blogger.com (Adv User)</author><pubDate>Sat, 3 Jan 2026 06:48:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-7867493011850816460</guid><description>&lt;h1 style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Comparison VS Code, Cursor, Windsurf, Trae, Kiro, Replit&lt;/h1&gt;&lt;div data-hveid="CAEQAA" data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;VS Code, Cursor, Windsurf, Trae, Kiro, and Replit represent a spectrum of modern coding environments, ranging from a highly extensible, traditional local editor (VS Code) to fully cloud-based, AI-driven development and deployment platforms (Replit). Most of the others are AI-first IDEs built on or heavily inspired by VS Code.&lt;span data-processed="true" data-wiz-uids="hnNnad_a,hnNnad_b,hnNnad_c"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-hveid="CAEQAA" data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;span data-processed="true" data-wiz-uids="hnNnad_a,hnNnad_b,hnNnad_c"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-processed="true" data-sfc-cp="" data-ved="2ahUKEwiItOeCye6RAxVgLFkFHflAKRoQ-q4QegQIAxAA" data-wiz-uids="hnNnad_14"&gt;&lt;table class="mce-item-table" data-animation-nesting="" data-processed="true" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;tbody data-processed="true"&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;Feature&lt;span data-processed="true" data-wiz-uids="hnNnad_17,hnNnad_18,hnNnad_19"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;VS Code&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;Cursor&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;Windsurf&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;Trae&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;Kiro&lt;/span&gt;&lt;/th&gt;&lt;th colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto;"&gt;Replit&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;strong data-processed="true"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Platform&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Local desktop app&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Local desktop app&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Local desktop app&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Local desktop app&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Local desktop/CLI&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Cloud (browser-based)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;strong data-processed="true"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Core Philosophy&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Extensible, traditional editor&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;AI pair programmer w/ local control&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Agentic automation &amp;amp; deep context&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Fully free, AI-enhanced editor&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Spec-first AI agent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;All-in-one build/deploy platform&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;strong data-processed="true"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;AI Integration&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Via extensions (e.g., Copilot)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Deeply integrated AI chat &amp;amp; refactoring&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Agent-focused, multi-file awareness&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Built-in models (GPT-4o, Claude 3.5)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Agentic IDE, starts with a spec&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Built-in Ghostwriter AI &amp;amp; Agents&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;strong data-processed="true"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Offline Support&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Yes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Yes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Yes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Yes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Yes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;No&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;strong data-processed="true"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Ecosystem&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Vast extension marketplace&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Full VS Code extension compatibility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;VS Code-style extensions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Many VS Code extensions supported&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;AWS integrated ecosystem&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Built-in services (DB, Auth, etc.)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr data-processed="true" data-sfc-cp=""&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;strong data-processed="true"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Best For&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Developers wanting control &amp;amp; flexibility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Pro developers who want a powerful local AI-first experience&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Large, complex codebases &amp;amp; deep automation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Price-sensitive developers needing strong, free AI tools&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Complex projects benefiting from structured planning &amp;amp; automation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="undefined" data-processed="true" data-sfc-cp="" style="border: 1px dashed rgb(187, 187, 187);"&gt;&lt;span style="font-family: Roboto; font-size: x-small;"&gt;Students, indie hackers, teams needing fast prototyping and deployment&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div data-animation-nesting="" data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;Key Takeaways&lt;/span&gt;&lt;/div&gt;&lt;ul data-processed="true"&gt;&lt;li data-hveid="CAUQAA" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;a href="https://code.visualstudio.com/" rel="nofollow" target="_blank"&gt;&lt;strong data-processed="true"&gt;VS Code&lt;/strong&gt;&amp;nbsp;&lt;/a&gt;is the industry standard for those who value extreme flexibility and a massive ecosystem of extensions. Its AI capabilities come through additions like GitHub Copilot.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQAQ" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;a href="https://cursor.com/" rel="nofollow" target="_blank"&gt;&lt;strong data-processed="true"&gt;Cursor&lt;/strong&gt;&amp;nbsp;&lt;/a&gt;is a fork of VS Code that integrates AI more deeply into the core workflow, focusing on context-aware completions, multi-file refactoring, and AI chat. It is a popular choice for professional developers who want a local, powerful AI assistant.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQAg" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;a href="https://windsurf.com/" rel="nofollow" target="_blank"&gt;&lt;strong data-processed="true"&gt;Windsurf&lt;/strong&gt;&amp;nbsp;&lt;/a&gt;(by Codeium) is an AI rules-based assistant focusing on workflow automation and deep codebase awareness for large projects. It is known for a polished chat experience and strong file lookup systems.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQAw" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;a href="https://www.trae.ai/" rel="nofollow" target="_blank"&gt;&lt;strong data-processed="true"&gt;Trae&lt;/strong&gt;&amp;nbsp;&lt;/a&gt;stands out as a completely free, AI-powered IDE with built-in access to premium models like GPT-4o and Claude 3.5 Sonnet, making it highly attractive to developers on a budget.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQBA" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;a href="https://kiro.dev/" rel="nofollow" target="_blank"&gt;&lt;strong data-processed="true"&gt;Kiro&lt;/strong&gt;&amp;nbsp;&lt;/a&gt;is an "AI IDE for adults" that starts every feature with a spec, forcing developers to think through edge cases and security before generating code. It's best for structured planning in complex enterprise environments.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAUQBQ" data-processed="true"&gt;&lt;span data-processed="true" data-sfc-cp=""&gt;&lt;span style="font-family: Roboto;"&gt;&lt;a href="https://replit.com/" rel="nofollow" target="_blank"&gt;&lt;strong data-processed="true"&gt;Replit&lt;/strong&gt;&amp;nbsp;&lt;/a&gt;is in a different category as a fully cloud-based IDE with integrated hosting and deployment, requiring zero local setup. It is excellent for collaboration, prototyping, and moving from idea to live application very quickly.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Export Git Stash as patches </title><link>http://i-sane.blogspot.com/2025/12/export-git-stash-as-patches.html</link><category>export</category><category>Git</category><category>patch</category><category>stash</category><author>noreply@blogger.com (Adv User)</author><pubDate>Mon, 15 Dec 2025 10:26:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-6889194033878316446</guid><description>&lt;h1 style="text-align: left;"&gt;&lt;span style="font-family: Roboto;"&gt;Export Git Stash as patches&lt;/span&gt;&amp;nbsp;&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #2b00fe; font-family: courier;"&gt;&lt;b&gt;git stash show -u -p --binary stash@{0} &amp;gt; your_changes_name.patch&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #800180;"&gt;-u&lt;/span&gt;&amp;nbsp;&lt;/b&gt; - for untracked files&lt;/p&gt;&lt;p&gt;&lt;span style="color: #800180;"&gt;&lt;b&gt;-p&lt;/b&gt;&lt;/span&gt; - patch&lt;/p&gt;&lt;p&gt;&lt;span style="color: #800180;"&gt;&lt;b&gt;-binary&lt;/b&gt;&lt;/span&gt; - for binary files (images)&lt;/p&gt;&lt;p&gt;&lt;span style="color: #800180;"&gt;&lt;b&gt;stash@{0}&lt;/b&gt;&lt;/span&gt; - for fist stash (most fresh one)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="Y3BBE" data-hveid="CAkQAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;JW1pid_1u|npT2md" jscontroller="zcfIf" jsuid="JW1pid_1u" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 10px 0px 20px; overflow-wrap: break-word;"&gt;now you can transfer the&amp;nbsp;&lt;span style="color: #2b00fe; font-family: courier; font-size: medium;"&gt;your_changes_name.patch&lt;/span&gt;&amp;nbsp;file to the target machine/repository (e.g., via email, USB drive, or cloud storage). In the target repository:&lt;/div&gt;&lt;div class="Y3BBE" data-hveid="CAkQAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;JW1pid_1u|npT2md" jscontroller="zcfIf" jsuid="JW1pid_1u" style="background-color: white; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 10px 0px 20px; overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="JW1pid_24" style="color: #0a0a0a; font-weight: bolder;"&gt;Verify the patch&lt;/span&gt;&lt;span style="color: #0a0a0a;"&gt;&amp;nbsp;(optional):&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="JW1pid_25" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; border: 0.666667px solid rgb(243, 245, 246); font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;&lt;span style="color: #2b00fe;"&gt;&lt;b&gt;git apply --check&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: #2b00fe; font-family: courier; font-size: large;"&gt;your_changes_name.patch&lt;/span&gt;&lt;/div&gt;&lt;ul class="KsbFXc U6u95" data-processed="true" jscontroller="mPWODf" jsuid="JW1pid_21" style="background-color: white; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 10px 0px 20px; padding-inline-start: 16px; padding: 0px;"&gt;&lt;li data-hveid="CAoQAQ" data-processed="true" jscontroller="vsuOFb" jsuid="JW1pid_26" style="list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="JW1pid_27" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-processed="true" jscontroller="zYmgkd" jsuid="JW1pid_28" style="color: #0a0a0a; font-weight: bolder;"&gt;Apply the patch&lt;/span&gt;&lt;span style="color: #0a0a0a;"&gt;:&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="JW1pid_29" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; border: 0.666667px solid rgb(243, 245, 246); font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;&lt;span style="color: #2b00fe;"&gt;&lt;b&gt;git apply&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: #0a0a0a;"&gt;&lt;span style="color: #2b00fe; font-family: courier; font-size: large;"&gt;your_changes_name.patch&lt;/span&gt;. You may use&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-processed="true" dir="ltr" jscontroller="PR9Qj" jsuid="JW1pid_2a" style="background-color: #f3f5f6; border-color: rgb(243, 245, 246); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; border: 0.666667px solid rgb(243, 245, 246); font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;&lt;span style="color: #800180;"&gt;--ignore-whitespace&lt;/span&gt;&lt;/code&gt;&lt;span style="color: #0a0a0a;"&gt;&amp;nbsp;options if conflicts arise due to formatting differences.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-hveid="CAoQAg" data-processed="true" jscontroller="vsuOFb" jsuid="JW1pid_2b" style="color: #0a0a0a; list-style: disc; margin: 0px 0px 12px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;span class="T286Pc" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="JW1pid_2c" style="overflow-wrap: break-word;"&gt;The changes will appear in your working directory as unstaged modifications&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Grep cheat sheet</title><link>http://i-sane.blogspot.com/2025/11/grep-cheat-sheet.html</link><category>cheat</category><category>Cheat Sheet</category><category>grep</category><category>sheet</category><author>noreply@blogger.com (Adv User)</author><pubDate>Sat, 29 Nov 2025 03:31:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-8379807051502252803</guid><description>&lt;p&gt;&lt;/p&gt;&lt;h1 style="text-align: center;"&gt;Grep cheat sheet&lt;/h1&gt;source&amp;nbsp;&lt;a href="https://x.com/thatstraw/status/1789624772826890614" rel="nofollow" target="_blank"&gt;https://x.com/thatstraw/status/1789624772826890614&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpO6KFckt3tdTmEId3AGCDN5JK0BtruuT_P4JvCWPsvVhj68BnnI4a1T0G3OKZJhy16NQIdf1WzWlQP3P1bKoQnTGIB6_XMcpqBX7Lv8wkf9z6sdNy28m9g6HkCiX7GFCGgeIkPkKZZ6lGaroPTsEdma6roYBzu9ta_87tuKciWVJgp6EJvT-37TWLaoWm/s1080/grep-cheat-sheet-v0-213r8de3200d1.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1079" data-original-width="1080" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpO6KFckt3tdTmEId3AGCDN5JK0BtruuT_P4JvCWPsvVhj68BnnI4a1T0G3OKZJhy16NQIdf1WzWlQP3P1bKoQnTGIB6_XMcpqBX7Lv8wkf9z6sdNy28m9g6HkCiX7GFCGgeIkPkKZZ6lGaroPTsEdma6roYBzu9ta_87tuKciWVJgp6EJvT-37TWLaoWm/w640-h640/grep-cheat-sheet-v0-213r8de3200d1.webp" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpO6KFckt3tdTmEId3AGCDN5JK0BtruuT_P4JvCWPsvVhj68BnnI4a1T0G3OKZJhy16NQIdf1WzWlQP3P1bKoQnTGIB6_XMcpqBX7Lv8wkf9z6sdNy28m9g6HkCiX7GFCGgeIkPkKZZ6lGaroPTsEdma6roYBzu9ta_87tuKciWVJgp6EJvT-37TWLaoWm/s72-w640-h640-c/grep-cheat-sheet-v0-213r8de3200d1.webp" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Git, how to know all committers names in the project</title><link>http://i-sane.blogspot.com/2025/11/git-how-to-know-all-committers-names-in.html</link><category>committers names</category><category>Git</category><category>project</category><author>noreply@blogger.com (Adv User)</author><pubDate>Tue, 18 Nov 2025 04:10:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-5468768650615451037</guid><description>&lt;h1 style="text-align: left;"&gt;Git, how to know all committers names in the project&lt;/h1&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg0WPGxlI1Te4LhhgQBWMqz3XC-LkhSFa5bh9h4fWRn5qgXZO6ugJ9IBnmjteovFF1LBTBPCi7IRJe9YxWb-jj9qdsdmOhW1ldc8P1jNf5SJ2aVOX6FIPCa5x_jLtsJV2swc9G6el0XQ_heyuX1pmPz__Ov7Y3dz2FMA09SVxzACU_YdfIaIgnNMxglRYd/s1024/Gemini_Generated_Image_fwrotqfwrotqfwro.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1024" data-original-width="1024" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg0WPGxlI1Te4LhhgQBWMqz3XC-LkhSFa5bh9h4fWRn5qgXZO6ugJ9IBnmjteovFF1LBTBPCi7IRJe9YxWb-jj9qdsdmOhW1ldc8P1jNf5SJ2aVOX6FIPCa5x_jLtsJV2swc9G6el0XQ_heyuX1pmPz__Ov7Y3dz2FMA09SVxzACU_YdfIaIgnNMxglRYd/w640-h640/Gemini_Generated_Image_fwrotqfwrotqfwro.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;To identify all committer names in a Git project, use the&amp;nbsp;&lt;/span&gt;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; color: #0a0a0a; font-size: 16px; padding: 0px 4px;"&gt;git shortlog&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;command with specific flags:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: white;"&gt;&lt;span style="color: #0a0a0a; font-family: courier;"&gt;git shortlog -sne --all&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: white;"&gt;&lt;span style="color: #0a0a0a; font-family: courier;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="WaaZC" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;&lt;div class="RJPOee EIJn2" style="animation: auto ease 0s 1 normal none running none;"&gt;&lt;div aria-level="3" class="rPeykc pyPiTc" data-hveid="CAYQAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIBhAB" role="heading" style="font-size: 20px; font-weight: 600; line-height: 28px; margin: 20px 0px 10px;"&gt;&lt;span data-huuid="14960979616529743865"&gt;Explanation of flags:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="WaaZC" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;&lt;div class="RJPOee EIJn2" style="animation: auto ease 0s 1 normal none running none;"&gt;&lt;ul data-hveid="CBMQAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQm_YKegQIExAB" jsaction="jZtoLb:SaHfyb" jscontroller="M2ABbc" style="line-height: 24px; margin: 10px 0px 20px; padding-inline-start: 16px; padding: 0px;"&gt;&lt;li style="list-style: inherit; margin: 0px 0px 8px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;div class="zMgcWd dSKvsb" data-il="" style="border-bottom: none; padding-bottom: 0px; padding-top: 0px;"&gt;&lt;div data-crb-p=""&gt;&lt;div class="xFTqob" style="flex: 1 1 0%; min-width: 0px;"&gt;&lt;div class="Gur8Ad" style="display: inline; line-height: 24px; overflow: hidden; padding-bottom: 4px; transition: transform 200ms cubic-bezier(0.2, 0, 0, 1);"&gt;&lt;span data-huuid="14960979616529742308"&gt;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;-s&lt;/code&gt;&amp;nbsp;(or&amp;nbsp;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;--summary&lt;/code&gt;):&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="vM0jzc" style="display: inline; line-height: 24px;"&gt;&lt;span data-huuid="14960979616529741789"&gt;This flag summarizes the output, showing the number of commits by each author.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="list-style: inherit; margin: 0px 0px 8px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;div class="zMgcWd dSKvsb" data-il="" style="border-bottom: none; padding-bottom: 0px; padding-top: 8px;"&gt;&lt;div data-crb-p=""&gt;&lt;div class="xFTqob" style="flex: 1 1 0%; min-width: 0px;"&gt;&lt;div class="Gur8Ad" style="display: inline; line-height: 24px; overflow: hidden; padding-bottom: 4px; transition: transform 200ms cubic-bezier(0.2, 0, 0, 1);"&gt;&lt;span data-huuid="14960979616529740751"&gt;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;-n&lt;/code&gt;&amp;nbsp;(or&amp;nbsp;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;--numbered&lt;/code&gt;):&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="vM0jzc" style="display: inline; line-height: 24px;"&gt;&lt;span data-huuid="14960979616529740232"&gt;This sorts the output by the number of commits, with the highest contributor at the top.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="list-style: inherit; margin: 0px 0px 8px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;div class="zMgcWd dSKvsb" data-il="" style="border-bottom: none; padding-bottom: 0px; padding-top: 8px;"&gt;&lt;div data-crb-p=""&gt;&lt;div class="xFTqob" style="flex: 1 1 0%; min-width: 0px;"&gt;&lt;div class="Gur8Ad" style="display: inline; line-height: 24px; overflow: hidden; padding-bottom: 4px; transition: transform 200ms cubic-bezier(0.2, 0, 0, 1);"&gt;&lt;span data-huuid="14960979616529743290"&gt;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;-e&lt;/code&gt;&amp;nbsp;(or&amp;nbsp;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;--email&lt;/code&gt;):&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="vM0jzc" style="display: inline; line-height: 24px;"&gt;&lt;span data-huuid="14960979616529742771"&gt;This displays the email address of each committer alongside their name.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="list-style: inherit; margin: 0px; padding-inline-start: 4px; padding: 0px;"&gt;&lt;div class="zMgcWd dSKvsb" data-il="" style="border-bottom: none; padding-bottom: 0px; padding-top: 8px;"&gt;&lt;div data-crb-p=""&gt;&lt;div class="xFTqob" style="flex: 1 1 0%; min-width: 0px;"&gt;&lt;div class="Gur8Ad" style="display: inline; line-height: 24px; overflow: hidden; padding-bottom: 4px; transition: transform 200ms cubic-bezier(0.2, 0, 0, 1);"&gt;&lt;span data-huuid="14960979616529741733"&gt;&lt;code class="mv6bHd" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(229, 237, 255); border-radius: 4px; padding: 0px 4px;"&gt;--all&lt;/code&gt;:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="vM0jzc" style="display: inline; line-height: 24px;"&gt;&lt;span data-huuid="14960979616529741214"&gt;This ensures that the command considers all branches in the repository, not just the currently checked-out branch.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="WaaZC" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;&lt;div class="RJPOee EIJn2" style="animation: auto ease 0s 1 normal none running none;"&gt;&lt;div aria-level="3" class="rPeykc pyPiTc" data-hveid="CB4QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHhAB" role="heading" style="font-size: 20px; font-weight: 600; line-height: 28px; margin: 20px 0px 10px;"&gt;&lt;span data-huuid="3771881122124421209"&gt;Output:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="WaaZC" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Arial, sans-serif; font-size: 16px;"&gt;&lt;div class="RJPOee EIJn2" style="animation: auto ease 0s 1 normal none running none;"&gt;&lt;div class="rPeykc" data-hveid="CB0QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHRAB" style="margin: 10px 0px;"&gt;&lt;span data-huuid="3771881122124420667"&gt;The command will produce a list of committers, each followed by their email address and the total number of commits they have made across all branches.&amp;nbsp;&lt;/span&gt;&lt;span data-huuid="3771881122124420396"&gt;For example:&lt;/span&gt;&lt;/div&gt;&lt;div class="rPeykc" data-hveid="CB0QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHRAB" style="margin: 10px 0px;"&gt;&lt;span data-huuid="3771881122124420396"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="rPeykc" data-hveid="CB0QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHRAB" style="margin: 10px 0px;"&gt;&lt;span data-huuid="3771881122124420396"&gt;&lt;div class="rPeykc" data-hveid="CB0QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHRAB" style="margin: 10px 0px;"&gt;&amp;nbsp; &amp;nbsp; 20&amp;nbsp; John Doe &amp;lt;john.doe@example.com&amp;gt;&lt;/div&gt;&lt;div class="rPeykc" data-hveid="CB0QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHRAB" style="margin: 10px 0px;"&gt;&amp;nbsp; &amp;nbsp; 15&amp;nbsp; Jane Smith &amp;lt;jane.smith@example.com&amp;gt;&lt;/div&gt;&lt;div class="rPeykc" data-hveid="CB0QAQ" data-ved="2ahUKEwiiqaKrzPqQAxUplYkEHbneHtoQo_EKegQIHRAB" style="margin: 10px 0px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;8&amp;nbsp; Bob Johnson &amp;lt;bob.johnson@example.com&amp;gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg0WPGxlI1Te4LhhgQBWMqz3XC-LkhSFa5bh9h4fWRn5qgXZO6ugJ9IBnmjteovFF1LBTBPCi7IRJe9YxWb-jj9qdsdmOhW1ldc8P1jNf5SJ2aVOX6FIPCa5x_jLtsJV2swc9G6el0XQ_heyuX1pmPz__Ov7Y3dz2FMA09SVxzACU_YdfIaIgnNMxglRYd/s72-w640-h640-c/Gemini_Generated_Image_fwrotqfwrotqfwro.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Git patch workflow</title><link>http://i-sane.blogspot.com/2025/10/git-patch-workflow.html</link><category>conflicts</category><category>Git</category><category>patch</category><category>workflow</category><author>noreply@blogger.com (Adv User)</author><pubDate>Thu, 23 Oct 2025 23:21:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-957431551637283787</guid><description>&lt;p&gt;&amp;nbsp;&lt;span class="T286Pc" data-complete="true" data-processed="true" data-sfc-cp="" face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" jscontroller="fly6D" jsuid="CumQ9c_a" style="color: #0a0a0a; font-size: 16px; overflow-wrap: break-word;"&gt;In the&amp;nbsp;&lt;span class="T286Pc" data-complete="true" data-processed="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_d" style="overflow-wrap: break-word;"&gt;Git&lt;/span&gt;, you can apply patches using the&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_e" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git apply&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;command for changes from a&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_f" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git diff&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;or&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_g" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git am&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;for patches generated by&lt;/span&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_h" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; color: #0a0a0a; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git format-patch&lt;/code&gt;&lt;span face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #0a0a0a; font-size: 16px;"&gt;. The method you choose depends on the patch's format and whether you want to create a new commit.&lt;/span&gt;&lt;span class="uJ19be notranslate" data-complete="true" data-processed="true" data-wiz-uids="CumQ9c_i,CumQ9c_j" face="&amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif" jsaction="rcuQ6b:&amp;amp;CumQ9c_i|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_i" style="color: #0a0a0a; font-size: 16px;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_m|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_m" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="a7qCn" jsuid="CumQ9c_n" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; margin: 15px 0px 16px; padding-top: 15px;"&gt;Before you apply a patch&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_o,CumQ9c_p" jsaction="rcuQ6b:&amp;amp;CumQ9c_o|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_o" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="667f6a3a-723d-4d13-8a1e-a29cceabf6cd" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIAxAA" data-wiz-attrbind="disabled=CumQ9c_o_C5gNJc;class=CumQ9c_o_UpSNec;" jsaction="click:&amp;amp;CumQ9c_o|S9kKve;mouseenter:&amp;amp;CumQ9c_o|sbHm2b;mouseleave:&amp;amp;CumQ9c_o|Tx5Rb" jsuid="CumQ9c_p" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol class="IaGLZe VimKh" data-complete="true" data-processed="true" jscontroller="xE4zce" jsuid="CumQ9c_q" style="color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; padding-inline-start: 20px; padding: 0px;"&gt;&lt;li data-complete="true" data-hveid="CAQQAA" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_r" style="list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_s" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-complete="true" jscontroller="VhkxAe" jsuid="CumQ9c_t" style="background-color: white; font-weight: 700;"&gt;Back up your work.&lt;/span&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;Before applying a patch, you should have a &lt;/span&gt;&lt;span style="background-color: #fcff01;"&gt;clean working directory&lt;/span&gt;&lt;span style="background-color: white;"&gt;. Either commit or stash your uncommitted changes to avoid complications.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CAQQAQ" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_u" style="background-color: white; list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_v" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-complete="true" jscontroller="VhkxAe" jsuid="CumQ9c_w" style="font-weight: 700;"&gt;Use a temporary branch.&lt;/span&gt;&amp;nbsp;It's a best practice to create a new, temporary branch to test the patch. If something goes wrong, you can simply delete the branch without affecting your main codebase.&lt;/span&gt;&lt;div class="r1PmQe" data-complete="true" data-hveid="CAQQAg" data-wiz-uids="CumQ9c_y,CumQ9c_z,CumQ9c_10" jscontroller="HP6Sjf" jsuid="CumQ9c_x" style="margin: 16px 0px;"&gt;&lt;div data-complete="true"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-sae="" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 16px 16px 4px 4px; border-style: solid; border-width: 0.666667px; overflow: auto hidden; padding: 12px 16px 0px;"&gt;&lt;div class="z0e9Qd" style="display: flex; justify-content: space-between;"&gt;&lt;div class="vVRw1d" style="font-size: 20px; line-height: 26px;"&gt;sh&lt;/div&gt;&lt;/div&gt;&lt;div class="pCTyYe" dir="ltr" style="font-size: 14px; line-height: 22px;"&gt;&lt;pre&gt;&lt;code jsuid="CumQ9c_y"&gt;git checkout -b temp-patch-branch
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-complete="true" data-sae="" style="align-items: center; background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px 4px 16px 16px; border-style: solid; border-width: 0.666667px; display: flex; justify-content: space-between; margin-top: 3px; overflow: hidden; padding: 12px 16px;"&gt;&lt;div class="P8PNlb" style="font-size: 12px;"&gt;Use code with caution.&lt;/div&gt;&lt;button aria-label="Copy code text to clipboard." class="Ev0C3d" data-complete="true" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQopQPegQIBBAD" jsaction="click:&amp;amp;CumQ9c_x|VTVhdd" jsuid="CumQ9c_z" style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-style: none; border-width: initial; cursor: pointer; font: inherit; margin: 0px; outline: 0px; padding: 4px;"&gt;&lt;svg data-complete="true" fill="currentColor" height="18px" jscontroller="ZfypCb" jsuid="CumQ9c_11" viewbox="0 -960 960 960" width="18px"&gt;&lt;path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CAQQBA" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_13" style="background-color: white; list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_14" style="overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-complete="true" jscontroller="VhkxAe" jsuid="CumQ9c_15" style="font-weight: 700;"&gt;Check the patch.&lt;/span&gt;&amp;nbsp;To see if the patch will apply cleanly, run a check with the&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_16" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;--check&lt;/code&gt;&amp;nbsp;flag.&lt;/span&gt;&lt;div class="r1PmQe" data-complete="true" data-hveid="CAQQBQ" data-wiz-uids="CumQ9c_18,CumQ9c_19,CumQ9c_1a" jscontroller="HP6Sjf" jsuid="CumQ9c_17" style="margin: 16px 0px;"&gt;&lt;div data-complete="true"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-sae="" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 16px 16px 4px 4px; border-style: solid; border-width: 0.666667px; overflow: auto hidden; padding: 12px 16px 0px;"&gt;&lt;div class="z0e9Qd" style="display: flex; justify-content: space-between;"&gt;&lt;div class="vVRw1d" style="font-size: 20px; line-height: 26px;"&gt;sh&lt;/div&gt;&lt;/div&gt;&lt;div class="pCTyYe" dir="ltr" style="font-size: 14px; line-height: 22px;"&gt;&lt;pre&gt;&lt;code jsuid="CumQ9c_18"&gt;git apply --check my_patch.patch
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-complete="true" data-sae="" style="align-items: center; background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px 4px 16px 16px; border-style: solid; border-width: 0.666667px; display: flex; justify-content: space-between; margin-top: 3px; overflow: hidden; padding: 12px 16px;"&gt;&lt;div class="P8PNlb" style="font-size: 12px;"&gt;Use code with caution.&lt;/div&gt;&lt;button aria-label="Copy code text to clipboard." class="Ev0C3d" data-complete="true" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQopQPegQIBBAG" jsaction="click:&amp;amp;CumQ9c_17|VTVhdd" jsuid="CumQ9c_19" style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-style: none; border-width: initial; cursor: pointer; font: inherit; margin: 0px; outline: 0px; padding: 4px;"&gt;&lt;svg data-complete="true" fill="currentColor" height="18px" jscontroller="ZfypCb" jsuid="CumQ9c_1b" viewbox="0 -960 960 960" width="18px"&gt;&lt;path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="uJ19be notranslate" data-complete="true" data-wiz-uids="CumQ9c_1d,CumQ9c_1e" jsaction="rcuQ6b:&amp;amp;CumQ9c_1d|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_1d"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&amp;nbsp;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="8b51c2ff-a763-43d5-97f6-3a563533b4a7" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIBBAH" data-wiz-attrbind="disabled=CumQ9c_1d_C5gNJc;class=CumQ9c_1d_UpSNec;" jsaction="click:&amp;amp;CumQ9c_1d|S9kKve;mouseenter:&amp;amp;CumQ9c_1d|sbHm2b;mouseleave:&amp;amp;CumQ9c_1d|Tx5Rb" jsuid="CumQ9c_1e" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_1h|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_1h" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="a7qCn" jsuid="CumQ9c_1i" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; margin: 15px 0px 16px; padding-top: 15px;"&gt;Method 1: Using&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_1j" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git apply&lt;/code&gt;&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_1k,CumQ9c_1l" jsaction="rcuQ6b:&amp;amp;CumQ9c_1k|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_1k" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="e1b56a8d-ac2c-4ad7-b659-1c4d957ef78e" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIBRAA" data-wiz-attrbind="disabled=CumQ9c_1k_C5gNJc;class=CumQ9c_1k_UpSNec;" jsaction="click:&amp;amp;CumQ9c_1k|S9kKve;mouseenter:&amp;amp;CumQ9c_1k|sbHm2b;mouseleave:&amp;amp;CumQ9c_1k|Tx5Rb" jsuid="CumQ9c_1l" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAYQAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_1m|npT2md" jscontroller="zcfIf" jsuid="CumQ9c_1m" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; overflow-wrap: break-word;"&gt;Use this command for patches created with&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_1n" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git diff&lt;/code&gt;. It will apply the changes to your working directory and staging area but will&amp;nbsp;&lt;span class="Yjhzub" data-complete="true" data-processed="true" jscontroller="VhkxAe" jsuid="CumQ9c_1o" style="font-weight: 700;"&gt;not&lt;/span&gt;&amp;nbsp;create a new commit. The commit message, author, and date from the original commit are not preserved.&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_1s|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_1s" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="AdPoic" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="SF2W9b" jsuid="CumQ9c_1t" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; font-weight: 700; line-height: 24px; margin: 15px 0px 16px; padding-top: 15px;"&gt;How to use&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_1u" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git apply&lt;/code&gt;&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_1v,CumQ9c_1w" jsaction="rcuQ6b:&amp;amp;CumQ9c_1v|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_1v" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="3a3b304f-4935-4163-95a8-8672494dca34" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIBxAA" data-wiz-attrbind="disabled=CumQ9c_1v_C5gNJc;class=CumQ9c_1v_UpSNec;" jsaction="click:&amp;amp;CumQ9c_1v|S9kKve;mouseenter:&amp;amp;CumQ9c_1v|sbHm2b;mouseleave:&amp;amp;CumQ9c_1v|Tx5Rb" jsuid="CumQ9c_1w" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_1x|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_1x" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div class="r1PmQe" data-complete="true" data-hveid="CAgQAA" data-processed="true" data-wiz-uids="CumQ9c_1z,CumQ9c_20,CumQ9c_21" jscontroller="HP6Sjf" jsuid="CumQ9c_1y" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px; margin: 16px 0px;"&gt;&lt;div data-complete="true" data-processed="true"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-sae="" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 16px 16px 4px 4px; border-style: solid; border-width: 0.666667px; overflow: auto hidden; padding: 12px 16px 0px;"&gt;&lt;div class="z0e9Qd" style="display: flex; justify-content: space-between;"&gt;&lt;div class="vVRw1d" style="font-size: 20px; line-height: 26px;"&gt;sh&lt;/div&gt;&lt;/div&gt;&lt;div class="pCTyYe" dir="ltr" style="line-height: 22px;"&gt;&lt;pre&gt;&lt;code jsuid="CumQ9c_1z"&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# Apply the patch to your working directory&lt;/span&gt;&lt;span class="undefined"&gt;
git apply my_patch.patch

&lt;/span&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# If the patch was generated from a different subdirectory, you may need to strip leading path components.&lt;/span&gt;&lt;span class="undefined"&gt;
&lt;/span&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# The number 'n' represents the number of leading directories to ignore.&lt;/span&gt;&lt;span class="undefined"&gt;
git apply -p&amp;lt;n&amp;gt; my_patch.patch

&lt;/span&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# To add the changes directly to the staging index&lt;/span&gt;&lt;span class="undefined"&gt;
git apply --index my_patch.patch
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-complete="true" data-sae="" style="align-items: center; background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px 4px 16px 16px; border-style: solid; border-width: 0.666667px; display: flex; justify-content: space-between; margin-top: 3px; overflow: hidden; padding: 12px 16px;"&gt;&lt;div class="P8PNlb" style="font-size: 12px;"&gt;Use code with caution.&lt;/div&gt;&lt;button aria-label="Copy code text to clipboard." class="Ev0C3d" data-complete="true" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQopQPegQICBAB" jsaction="click:&amp;amp;CumQ9c_1y|VTVhdd" jsuid="CumQ9c_20" style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-style: none; border-width: initial; cursor: pointer; font: inherit; margin: 0px; outline: 0px; padding: 4px;"&gt;&lt;svg data-complete="true" fill="currentColor" height="18px" jscontroller="ZfypCb" jsuid="CumQ9c_22" viewbox="0 -960 960 960" width="18px"&gt;&lt;path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_24|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_24" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="a7qCn" jsuid="CumQ9c_25" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; margin: 15px 0px 16px; padding-top: 15px;"&gt;Method 2: Using&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_26" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git am&lt;/code&gt;&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_27,CumQ9c_28" jsaction="rcuQ6b:&amp;amp;CumQ9c_27|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_27" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="afb62d0c-b1b5-42d7-8a37-a7b2dd8297a1" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQICRAA" data-wiz-attrbind="disabled=CumQ9c_27_C5gNJc;class=CumQ9c_27_UpSNec;" jsaction="click:&amp;amp;CumQ9c_27|S9kKve;mouseenter:&amp;amp;CumQ9c_27|sbHm2b;mouseleave:&amp;amp;CumQ9c_27|Tx5Rb" jsuid="CumQ9c_28" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CAoQAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_29|npT2md" jscontroller="zcfIf" jsuid="CumQ9c_29" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; overflow-wrap: break-word;"&gt;Use this command for patches generated by&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_2a" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git format-patch&lt;/code&gt;, which are in a more robust "mailbox" format that includes commit metadata. This command automatically applies the patch and creates a new commit, preserving the original author and commit message.&lt;span class="uJ19be notranslate" data-complete="true" data-processed="true" data-wiz-uids="CumQ9c_2b,CumQ9c_2c" jsaction="rcuQ6b:&amp;amp;CumQ9c_2b|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_2b"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_2g|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_2g" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="AdPoic" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="SF2W9b" jsuid="CumQ9c_2h" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; font-weight: 700; line-height: 24px; margin: 15px 0px 16px; padding-top: 15px;"&gt;How to use&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_2i" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git am&lt;/code&gt;&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_2j,CumQ9c_2k" jsaction="rcuQ6b:&amp;amp;CumQ9c_2j|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_2j" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="824ebdcf-8252-49b4-96f5-4577a1986883" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQICxAA" data-wiz-attrbind="disabled=CumQ9c_2j_C5gNJc;class=CumQ9c_2j_UpSNec;" jsaction="click:&amp;amp;CumQ9c_2j|S9kKve;mouseenter:&amp;amp;CumQ9c_2j|sbHm2b;mouseleave:&amp;amp;CumQ9c_2j|Tx5Rb" jsuid="CumQ9c_2k" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_2l|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_2l" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div class="r1PmQe" data-complete="true" data-hveid="CAwQAA" data-processed="true" data-wiz-uids="CumQ9c_2n,CumQ9c_2o,CumQ9c_2p" jscontroller="HP6Sjf" jsuid="CumQ9c_2m" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px; margin: 16px 0px;"&gt;&lt;div data-complete="true" data-processed="true"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-sae="" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 16px 16px 4px 4px; border-style: solid; border-width: 0.666667px; overflow: auto hidden; padding: 12px 16px 0px;"&gt;&lt;div class="z0e9Qd" style="display: flex; justify-content: space-between;"&gt;&lt;div class="vVRw1d" style="font-size: 20px; line-height: 26px;"&gt;sh&lt;/div&gt;&lt;/div&gt;&lt;div class="pCTyYe" dir="ltr" style="line-height: 22px;"&gt;&lt;pre&gt;&lt;code jsuid="CumQ9c_2n"&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# Apply the patch and create a commit&lt;/span&gt;&lt;span class="undefined"&gt;
git am my_patch.patch

&lt;/span&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# If you are applying multiple patches&lt;/span&gt;&lt;span class="undefined"&gt;
git am *.patch

&lt;/span&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# For complex patches or if a patch fails to apply cleanly,&lt;/span&gt;&lt;span class="undefined"&gt;
&lt;/span&gt;&lt;span class="ClTQqc" style="color: #80868b; font-style: italic;"&gt;# use a three-way merge to help resolve conflicts&lt;/span&gt;&lt;span class="undefined"&gt;
git am -&lt;/span&gt;&lt;span class="tnfcCf" style="color: #b45908;"&gt;3&lt;/span&gt;&lt;span class="undefined"&gt; my_patch.patch
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-complete="true" data-sae="" style="align-items: center; background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px 4px 16px 16px; border-style: solid; border-width: 0.666667px; display: flex; justify-content: space-between; margin-top: 3px; overflow: hidden; padding: 12px 16px;"&gt;&lt;div class="P8PNlb" style="font-size: 12px;"&gt;Use code with caution.&lt;/div&gt;&lt;button aria-label="Copy code text to clipboard." class="Ev0C3d" data-complete="true" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQopQPegQIDBAB" jsaction="click:&amp;amp;CumQ9c_2m|VTVhdd" jsuid="CumQ9c_2o" style="background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-style: none; border-width: initial; cursor: pointer; font: inherit; margin: 0px; outline: 0px; padding: 4px;"&gt;&lt;svg data-complete="true" fill="currentColor" height="18px" jscontroller="ZfypCb" jsuid="CumQ9c_2q" viewbox="0 -960 960 960" width="18px"&gt;&lt;path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_2s|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_2s" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="a7qCn" jsuid="CumQ9c_2t" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; margin: 15px 0px 16px; padding-top: 15px;"&gt;Handling patch conflicts&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_2u,CumQ9c_2v" jsaction="rcuQ6b:&amp;amp;CumQ9c_2u|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_2u" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="746b74a1-d80d-4106-8ad4-36e863f600aa" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIDRAA" data-wiz-attrbind="disabled=CumQ9c_2u_C5gNJc;class=CumQ9c_2u_UpSNec;" jsaction="click:&amp;amp;CumQ9c_2u|S9kKve;mouseenter:&amp;amp;CumQ9c_2u|sbHm2b;mouseleave:&amp;amp;CumQ9c_2u|Tx5Rb" jsuid="CumQ9c_2v" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CA4QAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_2w|npT2md" jscontroller="zcfIf" jsuid="CumQ9c_2w" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; overflow-wrap: break-word;"&gt;If Git cannot apply the patch cleanly, you will encounter conflicts.&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CA8QAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_2z|npT2md" jscontroller="zcfIf" jsuid="CumQ9c_2z" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-complete="true" data-processed="true" jscontroller="VhkxAe" jsuid="CumQ9c_30" style="font-weight: 700;"&gt;If using&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_31" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git apply&lt;/code&gt;:&lt;/span&gt;&lt;br data-complete="true" data-processed="true" data-serialized-params="[]" jscontroller="Gy8rfb" jsuid="CumQ9c_32" /&gt;The process will stop and leave&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_33" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;.rej&lt;/code&gt;&amp;nbsp;(rejected) files in your working directory. You will have to manually resolve the conflicts in your files using the&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_34" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;.rej&lt;/code&gt;&amp;nbsp;file as a guide, and then use&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_35" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git add&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_36" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git commit&lt;/code&gt;&amp;nbsp;to finalize the changes.&lt;span class="uJ19be notranslate" data-complete="true" data-processed="true" data-wiz-uids="CumQ9c_37,CumQ9c_38" jsaction="rcuQ6b:&amp;amp;CumQ9c_37|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_37"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CBAQAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_3a|npT2md" jscontroller="zcfIf" jsuid="CumQ9c_3a" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; overflow-wrap: break-word;"&gt;&lt;span class="Yjhzub" data-complete="true" data-processed="true" jscontroller="VhkxAe" jsuid="CumQ9c_3b" style="font-weight: 700;"&gt;If using&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_3c" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git am&lt;/code&gt;:&lt;/span&gt;&lt;br data-complete="true" data-processed="true" data-serialized-params="[]" jscontroller="Gy8rfb" jsuid="CumQ9c_3d" /&gt;Git will stop and inform you of the conflict.&lt;span class="txxDge notranslate" data-complete="true" data-processed="true" data-wiz-uids="CumQ9c_3e,CumQ9c_3f" jsaction="rcuQ6b:&amp;amp;CumQ9c_3e|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_3e" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="5fe01aa2-380d-4856-a58d-692b9ec4d2a1" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIEBAB" data-wiz-attrbind="disabled=CumQ9c_3e_C5gNJc;class=CumQ9c_3e_UpSNec;" jsaction="click:&amp;amp;CumQ9c_3e|S9kKve;mouseenter:&amp;amp;CumQ9c_3e|sbHm2b;mouseleave:&amp;amp;CumQ9c_3e|Tx5Rb" jsuid="CumQ9c_3f" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol class="IaGLZe VimKh" data-complete="true" data-processed="true" jscontroller="xE4zce" jsuid="CumQ9c_3g" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; padding-inline-start: 20px; padding: 0px;"&gt;&lt;li data-complete="true" data-hveid="CBEQAA" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_3h" style="list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_3i" style="overflow-wrap: break-word;"&gt;Open the conflicted files and manually resolve the changes.&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CBEQAQ" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_3j" style="list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_3k" style="overflow-wrap: break-word;"&gt;After resolving, stage the changes with&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_3l" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git add .&lt;/code&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CBEQAg" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_3m" style="list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_3n" style="overflow-wrap: break-word;"&gt;Continue the process with&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_3o" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git am --continue&lt;/code&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li data-complete="true" data-hveid="CBEQAw" data-sae="" jscontroller="vsuOFb" jsuid="CumQ9c_3p" style="list-style: decimal; margin: 0px 0px 16px; padding: 0px;"&gt;&lt;span class="T286Pc" data-complete="true" data-sfc-cp="" jscontroller="fly6D" jsuid="CumQ9c_3q" style="overflow-wrap: break-word;"&gt;To abort the process, use&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_3r" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git am --abort&lt;/code&gt;.&lt;/span&gt;&lt;span class="uJ19be notranslate" data-complete="true" data-wiz-uids="CumQ9c_3s,CumQ9c_3t" jsaction="rcuQ6b:&amp;amp;CumQ9c_3s|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_3s"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="Fsg96" data-complete="true" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_3v|npT2md" jscontroller="KHhJQ" jsuid="CumQ9c_3v" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px;"&gt;&lt;/div&gt;&lt;div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-processed="true" data-sae="" data-sfc-cp="" jscontroller="a7qCn" jsuid="CumQ9c_3w" role="heading" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 20px; font-weight: 600; line-height: 28px; margin: 15px 0px 16px; padding-top: 15px;"&gt;Reversing a patch&lt;span class="txxDge notranslate" data-complete="true" data-wiz-uids="CumQ9c_3x,CumQ9c_3y" jsaction="rcuQ6b:&amp;amp;CumQ9c_3x|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_3x" style="visibility: hidden;"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&lt;button aria-label="View related links" class="rBl3me" data-amic="true" data-icl-uuid="1f139b8e-20ba-49e3-91b6-133f249bd694" data-ved="2ahUKEwjjr6G_kbuQAxVOv4kEHdXEPUUQye0OegQIEhAA" data-wiz-attrbind="disabled=CumQ9c_3x_C5gNJc;class=CumQ9c_3x_UpSNec;" jsaction="click:&amp;amp;CumQ9c_3x|S9kKve;mouseenter:&amp;amp;CumQ9c_3x|sbHm2b;mouseleave:&amp;amp;CumQ9c_3x|Tx5Rb" jsuid="CumQ9c_3y" style="background: none 0% 0% / auto repeat scroll padding-box border-box rgb(233, 235, 240); border-color: initial; border-radius: 10px; border-style: none; border-width: initial; cursor: pointer; height: 20px; margin: 0px 6px 0px 0px; outline: 0px; padding: 0px; width: 20px;" tabindex="0"&gt;&lt;span class="wiMplc ofC0Ud" style="color: #0a0a0a; display: inline-block; transform: rotate(135deg);"&gt;&lt;svg fill="currentColor" focusable="false" height="12px" style="margin-top: 3px;" viewbox="0 0 24 24" width="12px" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Y3BBE" data-complete="true" data-hveid="CBMQAA" data-processed="true" data-sfc-cp="" jsaction="rcuQ6b:&amp;amp;CumQ9c_3z|npT2md" jscontroller="zcfIf" jsuid="CumQ9c_3z" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 16px; line-height: 24px; margin: 16px 0px; overflow-wrap: break-word;"&gt;If you need to revert a patch, you can use the&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_40" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;--reverse&lt;/code&gt;&amp;nbsp;or&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_41" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;-R&lt;/code&gt;&amp;nbsp;flag with&amp;nbsp;&lt;code class="o8j0Mc" data-complete="true" data-sae="" dir="ltr" jscontroller="PR9Qj" jsuid="CumQ9c_42" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px; border-style: solid; border-width: 0.666667px; font-size: 14px; line-height: 22px; padding: 2px 4px;"&gt;git apply&lt;/code&gt;.&lt;span class="uJ19be notranslate" data-complete="true" data-processed="true" data-wiz-uids="CumQ9c_43,CumQ9c_44" jsaction="rcuQ6b:&amp;amp;CumQ9c_43|npT2md" jscontroller="udAs2b" jsuid="CumQ9c_43"&gt;&lt;span class="vKEkVd" data-animation-atomic="" data-sae="" style="position: relative; text-wrap-mode: nowrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="r1PmQe" data-complete="true" data-hveid="CBYQAA" data-processed="true" data-wiz-uids="CumQ9c_6j,CumQ9c_6k,CumQ9c_6l" jscontroller="HP6Sjf" jsuid="CumQ9c_6i" style="background-color: white; color: #0a0a0a; font-family: &amp;quot;Google Sans&amp;quot;, Roboto, Arial, sans-serif; font-size: 14px; margin: 16px 0px;"&gt;&lt;div data-complete="true" data-processed="true"&gt;&lt;div class="pHpOfb" data-animation-atomic="" data-sae="" style="background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 16px 16px 4px 4px; border-style: solid; border-width: 0.666667px; overflow: auto hidden; padding: 12px 16px 0px;"&gt;&lt;div class="z0e9Qd" style="display: flex; justify-content: space-between;"&gt;&lt;div class="vVRw1d" style="font-size: 20px; line-height: 26px;"&gt;sh&lt;/div&gt;&lt;/div&gt;&lt;div class="pCTyYe" dir="ltr" style="line-height: 22px;"&gt;&lt;pre&gt;&lt;code jsuid="CumQ9c_6j"&gt;git apply -R my_patch.patch
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="LIBz9e" data-animation-atomic="" data-complete="true" data-sae="" style="align-items: center; background-color: #f0f2f5; border-color: rgb(240, 242, 245); border-image: none 100% / 1 / 0 stretch; border-radius: 4px 4px 16px 16px; border-style: solid; border-width: 0.666667px; display: flex; justify-content: space-between; margin-top: 3px; overflow: hidden; padding: 12px 16px;"&gt;&lt;div class="P8PNlb" style="font-size: 12px;"&gt;Use code with caution.&lt;/div&gt;&lt;div class="P8PNlb" style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://www.specbee.com/blogs/create-apply-patch-with-git-diff-git-apply-commands-for-drupal-website" rel="nofollow" target="_blank"&gt;Git Diff, Git Format-Patch, and Git Apply: What’s the difference?&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>PowerShell, how to search for a string in the output of the command like grep</title><link>http://i-sane.blogspot.com/2025/09/powershell-how-to-search-for-string-in.html</link><category>command</category><category>grep</category><category>output</category><category>powershell</category><category>search</category><author>noreply@blogger.com (Adv User)</author><pubDate>Tue, 30 Sep 2025 16:15:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-860127417772445812.post-1308625586038857890</guid><description>&lt;p&gt;&lt;/p&gt;&lt;h1 style="text-align: left;"&gt;PowerShell, how to search for a string in the output of the command, like grep&lt;/h1&gt;&lt;span style="font-family: courier;"&gt;Your-Command | Select-String -Pattern "YourSearchString"&lt;/span&gt;&lt;p&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>