<?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>Forem: Simukuka Akakandelwa</title>
    <description>The latest articles on Forem by Simukuka Akakandelwa (@simukuka_akakandelwa_766d).</description>
    <link>https://forem.com/simukuka_akakandelwa_766d</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%2F3746091%2Fe8d9c855-26f0-4fef-95b6-4f1bb7b1f768.jpg</url>
      <title>Forem: Simukuka Akakandelwa</title>
      <link>https://forem.com/simukuka_akakandelwa_766d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/simukuka_akakandelwa_766d"/>
    <language>en</language>
    <item>
      <title>GitEase — Git in Plain English</title>
      <dc:creator>Simukuka Akakandelwa</dc:creator>
      <pubDate>Fri, 06 Feb 2026 12:48:02 +0000</pubDate>
      <link>https://forem.com/simukuka_akakandelwa_766d/gitease-git-in-plain-english-3b2c</link>
      <guid>https://forem.com/simukuka_akakandelwa_766d/gitease-git-in-plain-english-3b2c</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;br&gt;
Have you ever known &lt;strong&gt;&lt;em&gt;exactly&lt;/em&gt;&lt;/strong&gt; what you wanted to do in Git…&lt;br&gt;&lt;br&gt;
but the moment you open a terminal, the commands feel like a foreign language?&lt;br&gt;
If you’ve used Git long enough, you’ve probably been here:&lt;br&gt;
You know what you want to do —&lt;br&gt;&lt;br&gt;
but you don’t know the right command, or worse, you’re not sure which one is &lt;strong&gt;safe&lt;/strong&gt;.&lt;br&gt;
So you Google something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“undo my last commit but keep my changes”&lt;/strong&gt;&lt;br&gt;
You see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git reset --soft&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--mixed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--hard&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Someone mentions force push.&lt;br&gt;
And suddenly, you hesitate.&lt;br&gt;
Git is powerful — but that power comes with sharp edges, especially when you’re moving fast or still learning.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Real Problem Isn’t Git — It’s Translation
&lt;/h2&gt;

&lt;p&gt;What always bothered me wasn’t that Git was hard.&lt;/p&gt;

&lt;p&gt;It was that I had to &lt;strong&gt;translate my intent&lt;/strong&gt; into exact, unforgiving syntax.&lt;br&gt;
I knew what I wanted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Undo something
&lt;/li&gt;
&lt;li&gt;See what changed
&lt;/li&gt;
&lt;li&gt;Reset safely
&lt;/li&gt;
&lt;li&gt;Fix a mistake without breaking everything
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But Git doesn’t understand intent — it understands commands.&lt;br&gt;
That gap between &lt;em&gt;what I mean&lt;/em&gt; and &lt;em&gt;what I have to type&lt;/em&gt; is where mistakes happen.&lt;br&gt;
So I asked a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What if I could just tell Git what I want to do — in plain English?&lt;/strong&gt;
&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Introducing GitEase
&lt;/h2&gt;

&lt;p&gt;That question became &lt;strong&gt;GitEase&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GitEase is a CLI that lets you describe Git actions in natural language and translates that intent into &lt;strong&gt;real Git commands&lt;/strong&gt; using &lt;strong&gt;GitHub Copilot CLI&lt;/strong&gt; — with &lt;strong&gt;safety, transparency, and user control&lt;/strong&gt; built in.&lt;/p&gt;

&lt;p&gt;GitEase is intentionally &lt;strong&gt;not full automation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It doesn’t hide Git.&lt;br&gt;&lt;br&gt;
It doesn’t silently run commands.&lt;/p&gt;

&lt;p&gt;Instead, it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interprets intent
&lt;/li&gt;
&lt;li&gt;Builds an explicit plan
&lt;/li&gt;
&lt;li&gt;Explains what will happen
&lt;/li&gt;
&lt;li&gt;Warns when something is risky
&lt;/li&gt;
&lt;li&gt;Executes only with confirmation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitEase treats Git like a powerful tool that deserves respect.&lt;/p&gt;


&lt;h2&gt;
  
  
  How GitEase Works in Practice
&lt;/h2&gt;

&lt;p&gt;GitEase understands both &lt;strong&gt;simple actions&lt;/strong&gt; and &lt;strong&gt;full Git workflows&lt;/strong&gt; — because real Git usage is rarely just one command.&lt;/p&gt;
&lt;h3&gt;
  
  
  🧠 From intent to execution
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gitease &lt;span class="s2"&gt;"undo my last commit but keep my changes"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;GitEase translates this intent into:&lt;br&gt;
&lt;code&gt;git reset --soft HEAD~1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Before running it, GitEase:&lt;br&gt;
    • Explains what the command does&lt;br&gt;
    • Classifies the risk level&lt;br&gt;
    • Asks for confirmation&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fua7d08en8v633kk99dzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fua7d08en8v633kk99dzn.png" alt=" " width="800" height="176"&gt;&lt;/a&gt;&lt;br&gt;
🔁 Intent-aware Git workflows&lt;/p&gt;

&lt;p&gt;GitEase also understands compound intent — the kind developers use every day:&lt;br&gt;
gitease "stage everything, commit, and push"&lt;br&gt;
Instead of collapsing this into a single opaque action, GitEase produces a clear execution plan:&lt;br&gt;
Workflow Plan (4 steps):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. git status
   Check repository state

2. git add .
   Stage all changes

3. git commit -m "Your commit message"
   Create a commit

4. git push
   Push to the remote repository
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each step is explicit.&lt;br&gt;
Each step is explained.&lt;br&gt;
Each step can be approved or aborted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fayj3wbkuyqkhv9f2iw2r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fayj3wbkuyqkhv9f2iw2r.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This turns vague intent into auditable Git behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️Safety Is a First-Class Concept
&lt;/h2&gt;

&lt;p&gt;Some Git commands are inherently dangerous.&lt;br&gt;
GitEase treats them that way.&lt;br&gt;
If an action could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discard changes&lt;/li&gt;
&lt;li&gt;Rewrite history&lt;/li&gt;
&lt;li&gt;Push destructive updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitEase stops and warns you:&lt;br&gt;
&lt;code&gt;⚠️ Warning: This operation may permanently discard changes.&lt;/code&gt;&lt;br&gt;
You always see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What will run&lt;/li&gt;
&lt;li&gt;Why it’s risky&lt;/li&gt;
&lt;li&gt;What the consequences are&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the default answer is &lt;strong&gt;No&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3tsantxaydakrc5lad0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3tsantxaydakrc5lad0i.png" alt=" " width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Makes GitEase Different&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitEase isn’t trying to replace Git expertise — it’s designed to build confidence.&lt;/p&gt;

&lt;p&gt;🤖 AI-Powered Translation: Uses GitHub Copilot CLI to convert intent into real commands&lt;br&gt;
🧠 Workflow Awareness: Understands multi-step Git operations, not just one-liners&lt;br&gt;
🛡️ Safety-First Execution: Warnings and confirmations for destructive actions&lt;br&gt;
📊 Context-Aware: Shows status, diffs, and logs when they matter&lt;br&gt;
⏮️ Undo History: Tracks executed actions so mistakes are reversible&lt;br&gt;
📚 Educational by Design: You learn Git while using it&lt;/p&gt;

&lt;h2&gt;
  
  
  DEMO
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2pg6wyfmqssyoaazvf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2pg6wyfmqssyoaazvf4.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
Try it yourself:&lt;br&gt;
    • &lt;a href="////www.npmjs.com/package/gitease-cli"&gt;📦 npm: https&lt;/a&gt;&lt;br&gt;
    • &lt;a href="https://github.com/simukuka/gitease" rel="noopener noreferrer"&gt;💻 GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Experience with GitHub Copilot CLI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub Copilot CLI was essential to making GitEase possible — not as a shortcut, but as the intent translation layer at the core of the tool.&lt;/p&gt;

&lt;p&gt;Copilot is very good at generating Git commands.&lt;br&gt;
What it doesn’t do is decide when those commands are safe to run.&lt;/p&gt;

&lt;p&gt;GitEase sits in that gap.&lt;/p&gt;

&lt;p&gt;Copilot translates intent.&lt;br&gt;
GitEase adds:&lt;br&gt;
    • Structure&lt;br&gt;
    • Guardrails&lt;br&gt;
    • Judgment&lt;/p&gt;

&lt;p&gt;This project taught me that AI works best when paired with constraints, not autonomy.&lt;br&gt;
What I Learned&lt;/p&gt;

&lt;p&gt;Building GitEase reinforced a few important lessons:&lt;br&gt;
    • Simpler tools can still be deeply powerful&lt;br&gt;
    • Safety and clarity matter as much as speed&lt;br&gt;
    • AI should assist judgment, not replace it&lt;br&gt;
    • Developer experience is a deliberate design choice&lt;/p&gt;

&lt;p&gt;GitEase won’t replace Git expertise — but it helps people gain confidence while learning it.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Closing Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Git is one of the most important tools developers use every day — but it doesn’t have to feel intimidating.&lt;/p&gt;

&lt;p&gt;GitEase bridges the gap between what developers want to do and what Git expects them to type — with Copilot CLI as the translator and GitEase as the safety layer.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
