<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Omibranch</title>
    <description>The latest articles on DEV Community by Omibranch (@omibranch).</description>
    <link>https://dev.to/omibranch</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3862397%2Fb2f3b197-5d90-4a52-b29e-2419caf28f23.png</url>
      <title>DEV Community: Omibranch</title>
      <link>https://dev.to/omibranch</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/omibranch"/>
    <language>en</language>
    <item>
      <title>gitty — Git CLI that speaks human: replace git add/commit/push with one word</title>
      <dc:creator>Omibranch</dc:creator>
      <pubDate>Sun, 05 Apr 2026 14:58:12 +0000</pubDate>
      <link>https://dev.to/omibranch/gitty-git-cli-that-speaks-human-replace-git-addcommitpush-with-one-word-4kok</link>
      <guid>https://dev.to/omibranch/gitty-git-cli-that-speaks-human-replace-git-addcommitpush-with-one-word-4kok</guid>
      <description>&lt;h1&gt;
  
  
  gitty — Git CLI that speaks human
&lt;/h1&gt;

&lt;p&gt;If you use Git daily, you know the ritual:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"fix stuff"&lt;/span&gt;
git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every. Single. Time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;gitty&lt;/strong&gt; collapses that into one word:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Stage everything, auto-commit with a timestamp, and push — one command.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is gitty?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Omibranch/gitty" rel="noopener noreferrer"&gt;gitty&lt;/a&gt; is a single Go binary (~6 MB, zero dependencies) that wraps Git and the GitHub CLI into short, human-readable commands. It doesn't replace Git — it sits on top and handles the tedious parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Linux / macOS:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Omibranch/gitty/master/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Arch Linux:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yay &lt;span class="nt"&gt;-S&lt;/span&gt; gitty-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;winget &lt;span class="nb"&gt;install &lt;/span&gt;Omibranch.Gitty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Core commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;gitty up&lt;/code&gt; — the workhorse
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty up                        &lt;span class="c"&gt;# stage + auto-commit + push&lt;/span&gt;
gitty up &lt;span class="nt"&gt;--commit&lt;/span&gt; &lt;span class="s2"&gt;"fix: typo"&lt;/span&gt;   &lt;span class="c"&gt;# with your own message&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Smart pull
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty pull main          &lt;span class="c"&gt;# safe pull — never overwrites local files&lt;/span&gt;
gitty pull main &lt;span class="nt"&gt;--hard&lt;/span&gt;   &lt;span class="c"&gt;# pull + overwrite&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Shorthand syntax
&lt;/h3&gt;

&lt;p&gt;gitty uses &lt;code&gt;=&lt;/code&gt; for "to" and &lt;code&gt;~&lt;/code&gt; for "from":&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty &lt;span class="nv"&gt;push&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;main       &lt;span class="c"&gt;# push to main&lt;/span&gt;
gitty pull~dev        &lt;span class="c"&gt;# pull from dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Selective commit — send only specific lines
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty pick main.go 10-20        &lt;span class="c"&gt;# send only lines 10–20&lt;/span&gt;
gitty pick main.go start1-end1  &lt;span class="c"&gt;# or by code markers #gitty:start1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Conflict resolution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty fix &amp;lt;file&amp;gt;   &lt;span class="c"&gt;# interactive picker: keep mine / take theirs / merge both&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Repo management
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty add repo &lt;span class="s2"&gt;"my-project"&lt;/span&gt; &lt;span class="nt"&gt;--public&lt;/span&gt;   &lt;span class="c"&gt;# create GitHub repo + link folder&lt;/span&gt;
gitty rename branch &lt;span class="s2"&gt;"old"&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s2"&gt;"new"&lt;/span&gt;       &lt;span class="c"&gt;# rename branch locally AND on remote&lt;/span&gt;
gitty erase secrets.txt                &lt;span class="c"&gt;# remove file from ALL past commits&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Checkpoints (tags)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty checkpoint &lt;span class="s2"&gt;"v1"&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;main   &lt;span class="c"&gt;# tag current state&lt;/span&gt;
gitty restore &lt;span class="s2"&gt;"v1"&lt;/span&gt;              &lt;span class="c"&gt;# roll back to it&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Aliases
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty &lt;span class="nb"&gt;alias &lt;/span&gt;save &lt;span class="s2"&gt;"up --commit"&lt;/span&gt;          &lt;span class="c"&gt;# define alias&lt;/span&gt;
gitty &lt;span class="nb"&gt;alias &lt;/span&gt;deploy &lt;span class="s2"&gt;"up and push=prod"&lt;/span&gt;   &lt;span class="c"&gt;# chain commands with 'and'&lt;/span&gt;
gitty save &lt;span class="s2"&gt;"my message"&lt;/span&gt;                 &lt;span class="c"&gt;# use alias&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why gitty instead of git aliases?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Portable config&lt;/strong&gt;: &lt;code&gt;.gittyconf&lt;/code&gt; lives in the repo, shared with the team&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe defaults&lt;/strong&gt;: &lt;code&gt;pull&lt;/code&gt; never overwrites by default&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform&lt;/strong&gt;: same binary on Linux, macOS, and Windows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub integration&lt;/strong&gt;: create repos, rename them, erase secrets — no browser needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero deps&lt;/strong&gt;: just one binary, no Python/Ruby/Node required&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Proxy support
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitty up &lt;span class="nt"&gt;--proxy&lt;/span&gt; &lt;span class="s2"&gt;"http://user:pass@1.2.3.4:8080"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Build from source
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Omibranch/gitty
&lt;span class="nb"&gt;cd &lt;/span&gt;gitty/source
go build &lt;span class="nt"&gt;-ldflags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-s -w"&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; ../gitty &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Requires Go 1.21+. No external dependencies.&lt;/p&gt;




&lt;p&gt;Project: &lt;a href="https://github.com/Omibranch/gitty" rel="noopener noreferrer"&gt;github.com/Omibranch/gitty&lt;/a&gt; · v2.2.0 · MIT License&lt;/p&gt;

</description>
      <category>git</category>
      <category>cli</category>
      <category>go</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
