<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gitx</title><link>https://gitxtui.github.io/docs/</link><description>Recent content on gitx</description><generator>Hugo</generator><language>en</language><atom:link href="https://gitxtui.github.io/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Basics</title><link>https://gitxtui.github.io/docs/learn/getting-started/02_using_gitx/01_basics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/getting-started/02_using_gitx/01_basics/</guid><description/></item><item><title>Installing gitx</title><link>https://gitxtui.github.io/docs/learn/getting-started/01_installing_gitx/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/getting-started/01_installing_gitx/</guid><description>&lt;h2 id="installation-script">Installation Script&lt;a class="td-heading-self-link" href="#installation-script" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>The easiest way to install &lt;code>gitx&lt;/code> is by using the installation script. Open your terminal and run the following command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">curl -sSL https://raw.githubusercontent.com/gitxtui/gitx/master/install.sh &lt;span class="p">|&lt;/span> bash
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This script will automatically detect your operating system and architecture, download the latest release of gitx, and install it to &lt;code>/usr/local/bin&lt;/code>.&lt;/p>
&lt;h2 id="using-go-install">Using go install&lt;a class="td-heading-self-link" href="#using-go-install" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Requires &lt;code>go&lt;/code> to be installed on your system:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">go install github.com/gitxtui/gitx/cmd/gitx@latest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This will download the correct binary according to your operating system and place it at &lt;code>~/go/bin/gitx&lt;/code>.&lt;/p></description></item><item><title>Introduction to Git</title><link>https://gitxtui.github.io/docs/learn/tutorials/01_introduction_git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/01_introduction_git/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>Git&lt;/strong> is an open source, distributed version control system (VCS) that helps you track changes in your code and collaborate with others efficiently.&lt;/p>&lt;/blockquote>
&lt;hr>
&lt;p>Imagine you’re writing a book. You make changes every day—sometimes adding new chapters, sometimes fixing typos. After a few weeks, you wonder: &lt;em>What if I want to see the old draft? What if two people are editing the same chapter?&lt;/em>&lt;/p>
&lt;p>This is where &lt;strong>Git&lt;/strong> comes in.&lt;/p></description></item><item><title>Overview</title><link>https://gitxtui.github.io/docs/learn/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/overview/</guid><description>&lt;!-- 

&lt;div class="pageinfo pageinfo-primary">
&lt;p>This is a placeholder page that shows you how to use this template site.&lt;/p>

&lt;/div>
 -->
&lt;h2 id="what-is-it">What is it?&lt;a class="td-heading-self-link" href="#what-is-it" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>gitx is a Terminal User Interface (TUI) helper designed to simplify the process of learning and using Git, the most widely used version control system (VCS). Instead of typing long and often confusing commands, gitx presents a more guided and interactive interface that helps beginners understand Git concepts while still working inside the terminal. It is especially useful for students, new developers, or anyone who wants to strengthen their Git fundamentals by not only providing an easy access to all the git functions but also educating about doing all the said exercises manually.&lt;/p></description></item><item><title>Project Roadmap</title><link>https://gitxtui.github.io/docs/contribute/roadmap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/contribute/roadmap/</guid><description>&lt;style>
.roadmap-container {
 margin: 2rem 0;
}

.roadmap-section {
 position: relative;
 padding: 1.5rem;
 margin-bottom: 2rem;
 border-left: 4px solid;
 border-radius: 4px;
 transition: background-color 0.3s, border-color 0.3s;
}

/* Light theme */
.roadmap-section.done {
 border-color: #28a745;
 background: #f0f9f4;
}

.roadmap-section.active {
 border-color: #007bff;
 background: #e7f3ff;
}

.roadmap-section.planned {
 border-color: #6c757d;
 background: #f8f9fa;
}

/* Dark theme */
@media (prefers-color-scheme: dark) {
 .roadmap-section.done {
 border-color: #4ade80;
 background: rgba(74, 222, 128, 0.1);
 }

 .roadmap-section.active {
 border-color: #3b82f6;
 background: rgba(59, 130, 246, 0.1);
 }

 .roadmap-section.planned {
 border-color: #9ca3af;
 background: rgba(156, 163, 175, 0.1);
 }
}

/* Docsy dark mode class support */
.td-dark .roadmap-section.done {
 border-color: #4ade80;
 background: rgba(74, 222, 128, 0.1);
}

.td-dark .roadmap-section.active {
 border-color: #3b82f6;
 background: rgba(59, 130, 246, 0.1);
}

.td-dark .roadmap-section.planned {
 border-color: #9ca3af;
 background: rgba(156, 163, 175, 0.1);
}

.roadmap-section h3 {
 margin-top: 0;
 display: flex;
 align-items: center;
 gap: 0.5rem;
}

.roadmap-section ul {
 margin-bottom: 0;
}

.roadmap-section li {
 margin: 0.75rem 0;
}

.status-badge {
 display: inline-block;
 padding: 0.25rem 0.75rem;
 border-radius: 12px;
 font-size: 0.85rem;
 font-weight: 600;
}

/* Light theme badges */
.status-badge.done {
 background: #28a745;
 color: white;
}

.status-badge.active {
 background: #007bff;
 color: white;
}

.status-badge.planned {
 background: #6c757d;
 color: white;
}

/* Dark theme badges */
@media (prefers-color-scheme: dark) {
 .status-badge.done {
 background: #4ade80;
 color: #0f172a;
 }

 .status-badge.active {
 background: #3b82f6;
 color: white;
 }

 .status-badge.planned {
 background: #9ca3af;
 color: #0f172a;
 }
}

/* Docsy dark mode class support for badges */
.td-dark .status-badge.done {
 background: #4ade80;
 color: #0f172a;
}

.td-dark .status-badge.active {
 background: #3b82f6;
 color: white;
}

.td-dark .status-badge.planned {
 background: #9ca3af;
 color: #0f172a;
}
&lt;/style>
&lt;div class="roadmap-container">
&lt;div class="roadmap-section done">
 &lt;h3>✅ Completed &lt;span class="status-badge done">Done&lt;/span>&lt;/h3>
 &lt;ul>
 &lt;li>&lt;strong>Basic TUI Structure:&lt;/strong> A foundational terminal user interface is in place, providing the core layout and panel management for the application.&lt;/li>
 &lt;li>&lt;strong>Git Command Mapping:&lt;/strong> Essential Git commands are integrated into the TUI, allowing users to perform basic operations visually.&lt;/li>
 &lt;li>&lt;strong>Theme Generation:&lt;/strong> The application can generate themes from a predefined set of color palettes, allowing for initial UI customization.&lt;/li>
 &lt;li>&lt;strong>Custom Theme Support:&lt;/strong> Implement a system for users to add their own themes via configuration files in the &lt;code>.config&lt;/code> directory.&lt;/li>
 &lt;li>&lt;strong>Expanded Git Command Support:&lt;/strong> Integrate a wider range of Git commands to provide more comprehensive repository management capabilities.&lt;/li>
 &lt;li>&lt;strong>Bug Fixes:&lt;/strong> Address any outstanding bugs to improve stability and reliability.&lt;/li>
 &lt;li>&lt;strong>Command History and Logging:&lt;/strong> Allow the secondary panel to store all the git commands history and gitx logs.&lt;/li>
 &lt;li>&lt;strong>Repository Initialization:&lt;/strong> Add a feature that allows users to initialize a new Git repository in the current directory if one doesn't already exist.&lt;/li>
 &lt;li>&lt;strong>Safety Warnings:&lt;/strong> Implement a warning system to alert users when they are about to initialize a repository in a potentially problematic location.&lt;/li>
 &lt;li>&lt;strong>Custom Keybindings:&lt;/strong> Update config.toml logic to allow users to remap keys (currently hardcoded in keys.go).&lt;/li>
 &lt;/ul>
&lt;/div>
&lt;div class="roadmap-section active">
 &lt;h3>🚀 In Progress &lt;span class="status-badge active">Active&lt;/span>&lt;/h3>
 &lt;ul>
 &lt;li>&lt;strong>Items will be moved here soon from the planned section&lt;/strong>
 &lt;/ul>
&lt;/div>
&lt;div class="roadmap-section planned">
 &lt;h3>📋 Planned &lt;span class="status-badge planned">Upcoming&lt;/span>&lt;/h3>
 &lt;ul>
 &lt;li>&lt;strong>Improved Visual Diff Viewer:&lt;/strong> Enhance the diff viewer to provide a more intuitive and detailed representation of changes.&lt;/li>
 &lt;li>&lt;strong>Interactive Staging:&lt;/strong> Allow users to stage and unstage individual lines or hunks of code directly from the visual diff viewer.&lt;/li>
 &lt;li>&lt;strong>Merge Conflict Resolver:&lt;/strong> Build a tool to help users resolve merge conflicts from within the TUI.&lt;/li>
 &lt;/ul>
&lt;/div>
&lt;/div></description></item><item><title>Getting started with GIT</title><link>https://gitxtui.github.io/docs/learn/tutorials/02_setup_git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/02_setup_git/</guid><description>&lt;h2 id="1-installation">1. Installation&lt;a class="td-heading-self-link" href="#1-installation" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>You only need to install Git once.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Windows&lt;/strong>: Download from &lt;a href="https://git-scm.com">GIT&lt;/a> and install.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Mac&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">brew install git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Linux (Ubuntu/Debian)&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo apt update &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> sudo apt install git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;strong>ArchLinux&lt;/strong>&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">sudo pacman -Syu &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> sudo pacman -S git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;p>Check if it’s installed:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git --version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="2-the-git-workflow-the-big-picture">2. The Git Workflow (The Big Picture)&lt;a class="td-heading-self-link" href="#2-the-git-workflow-the-big-picture" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Before typing anything, let’s understand &lt;strong>how Git thinks&lt;/strong>.&lt;/p>
&lt;p>Every project has:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Working Directory&lt;/strong> → where you edit files.&lt;/p></description></item><item><title>Keybinds</title><link>https://gitxtui.github.io/docs/learn/getting-started/02_using_gitx/02_key_binds/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/getting-started/02_using_gitx/02_key_binds/</guid><description>&lt;h2 id="overview">Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>gitx is a keyboard-driven application with customizable keybindings. Every action in gitx can be remapped to your preferred key combination. This guide covers all available keybinds, how to customize them, and best practices for configuring your keyboard shortcuts.&lt;/p>
&lt;h2 id="configuration">Configuration&lt;a class="td-heading-self-link" href="#configuration" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Keybindings are configured in your gitx configuration file located at &lt;code>~/.config/gitx/config.toml&lt;/code>. The keybindings section uses the following format:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-toml" data-lang="toml">&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nx">keybindings&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">action_name&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;key_combination&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="key-specification-format">Key Specification Format&lt;a class="td-heading-self-link" href="#key-specification-format" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>Keys can be specified in several ways:&lt;/p></description></item><item><title>Custom Themes</title><link>https://gitxtui.github.io/docs/learn/getting-started/02_using_gitx/03_theme/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/getting-started/02_using_gitx/03_theme/</guid><description>&lt;h2 id="overview">Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>gitx comes with built-in themes and supports fully customizable user-defined themes. You can modify colors, styles, and the overall appearance of the interface. This guide covers using built-in themes and creating your own custom themes.&lt;/p>
&lt;h2 id="built-in-themes">Built-in Themes&lt;a class="td-heading-self-link" href="#built-in-themes" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>gitx includes the following built-in themes:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>GitHub Dark&lt;/strong> (default) - A clean dark theme based on GitHub&amp;rsquo;s color palette&lt;/li>
&lt;li>&lt;strong>Gruvbox&lt;/strong> - A retro groove color scheme&lt;/li>
&lt;/ul>
&lt;h3 id="using-built-in-themes">Using Built-in Themes&lt;a class="td-heading-self-link" href="#using-built-in-themes" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>To switch between built-in themes:&lt;/p></description></item><item><title>The Three Stages in Git</title><link>https://gitxtui.github.io/docs/learn/tutorials/03_stages_git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/03_stages_git/</guid><description>&lt;h2 id="what-are-the-three-stages-in-git">What Are the Three Stages in Git?&lt;a class="td-heading-self-link" href="#what-are-the-three-stages-in-git" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Git tracks your changes in three main stages:&lt;br>
&lt;strong>Working Directory&lt;/strong>, &lt;strong>Staging Area (Index)&lt;/strong>, and &lt;strong>Repository (Commit History)&lt;/strong>.&lt;br>
Understanding these stages is key to mastering Git’s workflow!&lt;/p>
&lt;hr>
&lt;h2 id="1-working-directory">1. Working Directory&lt;a class="td-heading-self-link" href="#1-working-directory" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>This is your project folder on your computer.&lt;/li>
&lt;li>Any changes you make to files—editing, adding, deleting—happen here first.&lt;/li>
&lt;li>Files in the working directory can be:
&lt;ul>
&lt;li>&lt;strong>Untracked:&lt;/strong> New files Git hasn’t seen before.&lt;/li>
&lt;li>&lt;strong>Modified:&lt;/strong> Files you’ve changed since the last commit.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Example:&lt;/strong>&lt;br>
You edit &lt;code>main.py&lt;/code> and add a new file &lt;code>README.md&lt;/code>.&lt;br>
Both are in your working directory.&lt;/p></description></item><item><title>Stashing Changes in Git</title><link>https://gitxtui.github.io/docs/learn/tutorials/04_stashing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/04_stashing/</guid><description>&lt;h2 id="what-is-stashing">What is Stashing?&lt;a class="td-heading-self-link" href="#what-is-stashing" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>&lt;strong>Stashing&lt;/strong> in Git lets you temporarily save changes in your working directory that you’re not ready to commit.&lt;br>
It’s like putting your unfinished work in a &amp;ldquo;drawer&amp;rdquo; so you can switch branches, pull updates, or do other tasks—then come back and finish later.&lt;/p>
&lt;hr>
&lt;h2 id="why-use-stash">Why Use Stash?&lt;a class="td-heading-self-link" href="#why-use-stash" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Switch branches safely:&lt;/strong>&lt;br>
If you have uncommitted changes but need to switch to another branch, stash lets you save your work without committing.&lt;/li>
&lt;li>&lt;strong>Keep your work-in-progress separate:&lt;/strong>&lt;br>
Avoid cluttering your commit history with incomplete or experimental changes.&lt;/li>
&lt;li>&lt;strong>Handle emergencies:&lt;/strong>&lt;br>
If you need to quickly fix something elsewhere, stash your current work and come back to it later.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-does-stash-work">How Does Stash Work?&lt;a class="td-heading-self-link" href="#how-does-stash-work" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>When you run &lt;code>git stash&lt;/code>, Git saves your changes (tracked files, and optionally untracked files) in a special stack.&lt;br>
Your working directory is then clean, as if you just checked out the branch.&lt;/p></description></item><item><title>Working with Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/01_branches_working/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/01_branches_working/</guid><description>&lt;h2 id="listing-branches">Listing Branches&lt;a class="td-heading-self-link" href="#listing-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>To see your &lt;strong>local branches&lt;/strong>, use:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git branch
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>&lt;strong>Expected output:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">* main
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/blockquote>
&lt;p>&lt;br>&lt;br>&lt;/p>
&lt;p>To list &lt;strong>all branches&lt;/strong> (including remote branches), use:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git branch -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>&lt;strong>Expected output:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">* main
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> remotes/origin/main
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/blockquote>
&lt;p>&lt;br>&lt;br>&lt;/p>
&lt;p>To list &lt;strong>Remote branches&lt;/strong> (including remote branches), use:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git branch -r
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;blockquote>
&lt;p>&lt;strong>Expected output:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">* remotes/origin/main
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/blockquote>
&lt;br>
&lt;hr>
&lt;ul>
&lt;li>The branch marked with an asterisk (&lt;code>*&lt;/code>) is your &lt;strong>currently active branch&lt;/strong>.&lt;/li>
&lt;li>Any changes or commits you make are added to this branch.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;blockquote>
&lt;p>&lt;strong>Tip:&lt;/strong>&lt;br>
Use branches to keep your work organized and your main branch stable!&lt;/p></description></item><item><title>Creating Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/02_branches_create/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/02_branches_create/</guid><description>&lt;h2 id="creating-a-branch">Creating a Branch&lt;a class="td-heading-self-link" href="#creating-a-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h4 id="command-1-create-only">Command 1: Create only&lt;a class="td-heading-self-link" href="#command-1-create-only" aria-label="Heading self-link">&lt;/a>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git branch &amp;lt;branch-name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Creates a new branch.&lt;/li>
&lt;li>Does not switch to it.&lt;/li>
&lt;li>You’re still on the same branch as before.&lt;/li>
&lt;/ul>
&lt;h4 id="command-2-create--switch">Command 2: Create + switch&lt;a class="td-heading-self-link" href="#command-2-create--switch" aria-label="Heading self-link">&lt;/a>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git checkout -b &amp;lt;branch-name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Shortcut: creates the branch and switches to it.&lt;/li>
&lt;li>Older syntax.&lt;/li>
&lt;/ul>
&lt;h4 id="command-3-modern-way">Command 3: Modern way&lt;a class="td-heading-self-link" href="#command-3-modern-way" aria-label="Heading self-link">&lt;/a>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git switch -c &amp;lt;branch-name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Recommended modern syntax.&lt;/li>
&lt;li>Does the same thing as checkout -b.&lt;/li>
&lt;/ul></description></item><item><title>Working with Remotes</title><link>https://gitxtui.github.io/docs/learn/tutorials/remotes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/remotes/</guid><description>&lt;p>Up until now, we have been working on our local system. Git, however, is built to facilitate collaboration among multiple developers. To let other developers work on our code, we need to publish this code to a website.&lt;/p>
&lt;hr>
&lt;h2 id="why-not-just-share-files">Why Not Just Share Files?&lt;a class="td-heading-self-link" href="#why-not-just-share-files" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>You can upload your code anywhere—zip it up and put it on cloud storage like Google Drive or Dropbox, or send the files as an attachment to your friend.&lt;br>
But these methods &lt;strong>won&amp;rsquo;t preserve your commit history, branches, or collaboration features&lt;/strong> (unless you include the hidden &lt;code>.git&lt;/code> folder, which is risky and not recommended).&lt;/p></description></item><item><title>Best Practices for Using Git</title><link>https://gitxtui.github.io/docs/learn/tutorials/05_bestpract/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/05_bestpract/</guid><description>&lt;p>Following best practices helps you avoid mistakes, keep your project history clean, and collaborate smoothly with others.&lt;br>
Here are essential tips for working with Git, whether you’re solo or on a team!&lt;/p>
&lt;hr>
&lt;h2 id="1-commit-often-but-meaningfully">1. Commit Often, But Meaningfully&lt;a class="td-heading-self-link" href="#1-commit-often-but-meaningfully" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Make small, focused commits:&lt;/strong>&lt;br>
Each commit should represent a single logical change.&lt;/li>
&lt;li>&lt;strong>Avoid huge commits:&lt;/strong>&lt;br>
Large commits are hard to review and revert.&lt;/li>
&lt;li>&lt;strong>Commit early and often:&lt;/strong>&lt;br>
This makes it easier to track changes and fix mistakes.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="2-write-clear-commit-messages">2. Write Clear Commit Messages&lt;a class="td-heading-self-link" href="#2-write-clear-commit-messages" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Describe what and why:&lt;/strong>&lt;br>
Explain what changed and why, not just “fix” or “update”.&lt;/li>
&lt;li>&lt;strong>Use the imperative mood:&lt;/strong>&lt;br>
Example: “Add login feature” instead of “Added login feature”.&lt;/li>
&lt;li>&lt;strong>Reference issues or tickets:&lt;/strong>&lt;br>
If using issue tracking, include references (e.g., &lt;code>Fixes #42&lt;/code>).&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="3-use-branches-for-features-and-fixes">3. Use Branches for Features and Fixes&lt;a class="td-heading-self-link" href="#3-use-branches-for-features-and-fixes" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Create a new branch for each feature or bugfix:&lt;/strong>&lt;br>
Keeps work isolated and makes merging easier.&lt;/li>
&lt;li>&lt;strong>Name branches descriptively:&lt;/strong>&lt;br>
Examples: &lt;code>feature/login&lt;/code>, &lt;code>bugfix/header&lt;/code>, &lt;code>hotfix/payment-crash&lt;/code>.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="4-pull-and-merge-regularly">4. Pull and Merge Regularly&lt;a class="td-heading-self-link" href="#4-pull-and-merge-regularly" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Sync with the remote often:&lt;/strong>&lt;br>
Use &lt;code>git pull&lt;/code> to get the latest changes before starting new work.&lt;/li>
&lt;li>&lt;strong>Resolve conflicts early:&lt;/strong>&lt;br>
The longer you wait, the harder conflicts become to fix.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="5-review-before-you-commit">5. Review Before You Commit&lt;a class="td-heading-self-link" href="#5-review-before-you-commit" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Check your changes:&lt;/strong>&lt;br>
Use &lt;code>git status&lt;/code> and &lt;code>git diff&lt;/code> to review what you’re about to commit.&lt;/li>
&lt;li>&lt;strong>Don’t commit secrets or sensitive data:&lt;/strong>&lt;br>
Double-check for passwords, API keys, or private info.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="6-clean-up-branches">6. Clean Up Branches&lt;a class="td-heading-self-link" href="#6-clean-up-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Delete branches after merging:&lt;/strong>&lt;br>
Keeps your repository tidy and avoids confusion.&lt;/li>
&lt;li>&lt;strong>Remove stale or unused branches regularly.&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="7-use-gitignore">7. Use .gitignore&lt;a class="td-heading-self-link" href="#7-use-gitignore" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Ignore files that shouldn’t be tracked:&lt;/strong>&lt;br>
Add build artifacts, logs, and environment files to &lt;code>.gitignore&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Keep &lt;code>.gitignore&lt;/code> up to date&lt;/strong> as your project grows.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="8-protect-important-branches">8. Protect Important Branches&lt;a class="td-heading-self-link" href="#8-protect-important-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Enable branch protection rules:&lt;/strong>&lt;br>
Prevent force-pushes, require pull requests, and enforce code reviews on critical branches like &lt;code>main&lt;/code> or &lt;code>master&lt;/code>.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="9-test-before-you-push">9. Test Before You Push&lt;a class="td-heading-self-link" href="#9-test-before-you-push" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Run tests and build your code before pushing:&lt;/strong>&lt;br>
Avoid breaking the shared codebase.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="10-document-your-workflow">10. Document Your Workflow&lt;a class="td-heading-self-link" href="#10-document-your-workflow" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Write down your team’s Git workflow:&lt;/strong>&lt;br>
Make sure everyone knows how to branch, merge, and review code.&lt;/li>
&lt;li>&lt;strong>Update documentation as your process evolves.&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="summary-table">Summary Table&lt;a class="td-heading-self-link" href="#summary-table" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Practice&lt;/th>
 &lt;th>Why It Matters&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Small, focused commits&lt;/td>
 &lt;td>Easier to review, revert, and understand&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Clear commit messages&lt;/td>
 &lt;td>Helps everyone know what changed and why&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Feature/fix branches&lt;/td>
 &lt;td>Isolate work, simplify collaboration&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Pull/merge regularly&lt;/td>
 &lt;td>Avoid big conflicts, stay up to date&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Review before commit&lt;/td>
 &lt;td>Prevent mistakes, keep history clean&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Clean up branches&lt;/td>
 &lt;td>Tidy repo, avoid confusion&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Use .gitignore&lt;/td>
 &lt;td>Don’t track unnecessary files&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Protect branches&lt;/td>
 &lt;td>Keep important code safe&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Test before push&lt;/td>
 &lt;td>Prevent breaking the build&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Document workflow&lt;/td>
 &lt;td>Team clarity, fewer mistakes&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;blockquote>
&lt;p>&lt;strong>Tip:&lt;/strong>&lt;br>
Good Git habits save time, prevent headaches, and make you a better collaborator.&lt;br>
Practice these tips and share them with your team!&lt;/p></description></item><item><title>Understanding HEAD</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/03_branches_head/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/03_branches_head/</guid><description>&lt;h2 id="what-is-head-in-git">What is HEAD in Git?&lt;a class="td-heading-self-link" href="#what-is-head-in-git" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>When working with Git, you’ll often hear about something called &lt;strong>HEAD&lt;/strong>.&lt;br>
Think of &lt;code>HEAD&lt;/code> as a special pointer that tells Git, “This is where you are right now.”&lt;/p>
&lt;hr>
&lt;h2 id="head-your-current-position">HEAD: Your Current Position&lt;a class="td-heading-self-link" href="#head-your-current-position" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>HEAD&lt;/strong> always points to your current branch.&lt;/li>
&lt;li>That branch, in turn, points to a specific commit (a snapshot of your project).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Visualization:&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">HEAD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">branch (e.g. main)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ↓
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">commit (e.g. a1b2c3d)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>When you make a new commit, the branch moves forward, and so does HEAD.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-head-moves">How HEAD Moves&lt;a class="td-heading-self-link" href="#how-head-moves" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>If you switch branches, HEAD moves to point to the new branch.&lt;/li>
&lt;li>If you make a commit, HEAD (via the branch) points to the new commit.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="detached-head-state">Detached HEAD State&lt;a class="td-heading-self-link" href="#detached-head-state" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Sometimes, HEAD doesn’t point to a branch, but &lt;strong>directly to a commit&lt;/strong>.&lt;br>
This is called a &lt;strong>detached HEAD&lt;/strong>.&lt;/p></description></item><item><title>Merging Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/04_branches_merging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/04_branches_merging/</guid><description>&lt;h2 id="what-is-merging">What is Merging?&lt;a class="td-heading-self-link" href="#what-is-merging" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>&lt;strong>Merging&lt;/strong> in Git is the process of taking the changes from one branch and combining them into another branch.&lt;br>
This is how you bring together work from different branches—like adding a new feature you built on a separate branch back into your main project.&lt;/p>
&lt;hr>
&lt;h2 id="why-merge">Why Merge?&lt;a class="td-heading-self-link" href="#why-merge" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>You might have a &lt;code>main&lt;/code> branch that holds your stable code.&lt;/li>
&lt;li>You create a &lt;code>feature&lt;/code> branch to work on something new, so your main code isn’t disturbed.&lt;/li>
&lt;li>When your feature is ready, you want to add it back to &lt;code>main&lt;/code>—&lt;strong>without losing any work from either branch&lt;/strong>.&lt;/li>
&lt;li>Merging lets you combine the work from both branches, keeping all the commit history and changes.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-does-merging-work">How Does Merging Work?&lt;a class="td-heading-self-link" href="#how-does-merging-work" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>When you merge, Git tries to automatically combine the changes from both branches.&lt;br>
If the changes don’t overlap, Git merges them automatically.&lt;br>
If the same lines were changed in both branches, you’ll get a &lt;strong>merge conflict&lt;/strong> (see the Conflicts topic).&lt;/p></description></item><item><title>Handling Merge Conflicts</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/05_branches_conflicts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/05_branches_conflicts/</guid><description>&lt;h2 id="what-is-a-merge-conflict">What is a Merge Conflict?&lt;a class="td-heading-self-link" href="#what-is-a-merge-conflict" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>A &lt;strong>merge conflict&lt;/strong> happens when Git cannot automatically combine changes from two branches.&lt;br>
This usually occurs when two branches have changed the same part of a file, or when one branch deletes a file that the other branch has modified.&lt;/p>
&lt;hr>
&lt;h2 id="why-do-conflicts-happen">Why Do Conflicts Happen?&lt;a class="td-heading-self-link" href="#why-do-conflicts-happen" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Two people (or two branches) edit the &lt;strong>same line&lt;/strong> in a file differently.&lt;/li>
&lt;li>One branch deletes a file that the other branch edits.&lt;/li>
&lt;li>Changes are made to the same section of a file in both branches.&lt;/li>
&lt;/ul>
&lt;p>Git tries to merge changes automatically, but if it’s unsure which change to keep, it stops and asks you to decide.&lt;/p></description></item><item><title>Deleting Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/06_branches_deletion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/06_branches_deletion/</guid><description>&lt;h2 id="why-delete-branches">Why Delete Branches?&lt;a class="td-heading-self-link" href="#why-delete-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Branches are great for working on features, bug fixes, or experiments.&lt;br>
But once a branch has served its purpose (for example, a feature is merged into &lt;code>main&lt;/code>), it’s a good idea to delete it.&lt;br>
This keeps your repository clean and avoids confusion.&lt;/p>
&lt;hr>
&lt;h2 id="deleting-local-branches">Deleting Local Branches&lt;a class="td-heading-self-link" href="#deleting-local-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>A &lt;strong>local branch&lt;/strong> exists only on your computer.&lt;/p>
&lt;h3 id="delete-a-local-branch-safe">Delete a Local Branch (Safe)&lt;a class="td-heading-self-link" href="#delete-a-local-branch-safe" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git branch -d &amp;lt;branch-name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Deletes the branch &lt;strong>only if it has been fully merged&lt;/strong> into your current branch.&lt;/li>
&lt;li>Prevents you from accidentally deleting work that hasn’t been saved elsewhere.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Example:&lt;/strong>&lt;/p></description></item><item><title>Understanding Remote Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/07_branches_remote/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/07_branches_remote/</guid><description>&lt;h2 id="what-is-a-remote-branch">What is a Remote Branch?&lt;a class="td-heading-self-link" href="#what-is-a-remote-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>A &lt;strong>remote branch&lt;/strong> is a branch that exists on a remote repository (like GitHub, GitLab, or Bitbucket), not just on your local computer.&lt;br>
Remote branches let you collaborate with others by sharing your work and keeping your local repository in sync with the remote server.&lt;/p>
&lt;hr>
&lt;h2 id="how-do-remote-branches-work">How Do Remote Branches Work?&lt;a class="td-heading-self-link" href="#how-do-remote-branches-work" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>When you &lt;strong>clone&lt;/strong> a repository, Git creates local copies of all the remote branches.&lt;/li>
&lt;li>Remote branches are read-only references to the state of branches on the remote server.&lt;/li>
&lt;li>They are named like &lt;code>origin/main&lt;/code>, &lt;code>origin/feature/login&lt;/code>, etc.
&lt;ul>
&lt;li>&lt;code>origin&lt;/code> is the default name for the remote you cloned from.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="common-remote-branch-commands">Common Remote Branch Commands&lt;a class="td-heading-self-link" href="#common-remote-branch-commands" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="1-listing-remote-branches">1. Listing Remote Branches&lt;a class="td-heading-self-link" href="#1-listing-remote-branches" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>List only remote branches:&lt;/strong>&lt;/p></description></item><item><title>Understanding Upstream Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/08_branches_upstream/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/08_branches_upstream/</guid><description>&lt;h2 id="what-is-an-upstream-branch">What is an Upstream Branch?&lt;a class="td-heading-self-link" href="#what-is-an-upstream-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>An &lt;strong>upstream branch&lt;/strong> in Git is the remote branch that your local branch is &amp;ldquo;tracking.&amp;rdquo;&lt;br>
This means your local branch knows which remote branch it should compare itself to when you run commands like &lt;code>git pull&lt;/code> or &lt;code>git push&lt;/code>—so you don’t have to specify the remote branch every time.&lt;/p>
&lt;hr>
&lt;h2 id="why-use-upstream-branches">Why Use Upstream Branches?&lt;a class="td-heading-self-link" href="#why-use-upstream-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Convenience:&lt;/strong>&lt;br>
You can simply run &lt;code>git pull&lt;/code> or &lt;code>git push&lt;/code> without extra arguments, and Git knows which remote branch to use.&lt;/li>
&lt;li>&lt;strong>Collaboration:&lt;/strong>&lt;br>
Keeps your local branch in sync with the team’s shared branch on the remote server.&lt;/li>
&lt;li>&lt;strong>Safety:&lt;/strong>&lt;br>
Helps prevent mistakes, like pushing to the wrong branch.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-do-you-set-an-upstream-branch">How Do You Set an Upstream Branch?&lt;a class="td-heading-self-link" href="#how-do-you-set-an-upstream-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="when-creating-a-local-branch-from-a-remote-branch">When Creating a Local Branch from a Remote Branch&lt;a class="td-heading-self-link" href="#when-creating-a-local-branch-from-a-remote-branch" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>If you create a local branch from a remote branch, Git usually sets the upstream automatically:&lt;/p></description></item><item><title>Renaming Branches</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/09_branches_rename/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/09_branches_rename/</guid><description>&lt;h2 id="why-rename-a-branch">Why Rename a Branch?&lt;a class="td-heading-self-link" href="#why-rename-a-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Sometimes you create a branch with a quick name, but later want something more descriptive or consistent.&lt;br>
Renaming branches helps keep your repository organized and clear for everyone working on it.&lt;/p>
&lt;hr>
&lt;h2 id="renaming-a-local-branch">Renaming a Local Branch&lt;a class="td-heading-self-link" href="#renaming-a-local-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="rename-the-current-branch">Rename the Current Branch&lt;a class="td-heading-self-link" href="#rename-the-current-branch" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>If you are &lt;strong>on the branch you want to rename&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git branch -m new-branch-name
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;code>-m&lt;/code> stands for &amp;ldquo;move&amp;rdquo; (rename).&lt;/li>
&lt;li>This changes the branch name in your local repository.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Example:&lt;/strong>&lt;/p></description></item><item><title>Interactive Rebase in Git</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/10_branches_rebasing/01_branches_rebasing_interactive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/10_branches_rebasing/01_branches_rebasing_interactive/</guid><description>&lt;h2 id="what-is-interactive-rebase">What is Interactive Rebase?&lt;a class="td-heading-self-link" href="#what-is-interactive-rebase" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>&lt;strong>Interactive rebase&lt;/strong> is a powerful Git feature that lets you rewrite, edit, reorder, squash, or even delete commits in your branch’s history.&lt;br>
It’s called &amp;ldquo;interactive&amp;rdquo; because Git opens an editor and lets you choose exactly what happens to each commit.&lt;/p>
&lt;hr>
&lt;h2 id="why-use-interactive-rebase">Why Use Interactive Rebase?&lt;a class="td-heading-self-link" href="#why-use-interactive-rebase" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Clean up messy commit history&lt;/strong> before sharing your work.&lt;/li>
&lt;li>&lt;strong>Combine (squash) multiple commits&lt;/strong> into one.&lt;/li>
&lt;li>&lt;strong>Edit commit messages&lt;/strong> for clarity or consistency.&lt;/li>
&lt;li>&lt;strong>Reorder commits&lt;/strong> to make history logical.&lt;/li>
&lt;li>&lt;strong>Remove unwanted commits&lt;/strong> (like mistakes or debug code).&lt;/li>
&lt;li>&lt;strong>Split a commit&lt;/strong> into smaller, more focused commits.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-to-start-an-interactive-rebase">How to Start an Interactive Rebase&lt;a class="td-heading-self-link" href="#how-to-start-an-interactive-rebase" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Decide how many commits you want to work with (counting backwards from your current commit):&lt;/p></description></item><item><title>Squash Commits with Interactive Rebase</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/10_branches_rebasing/02_branches_rebasing_squash/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/10_branches_rebasing/02_branches_rebasing_squash/</guid><description>&lt;h2 id="what-is-squashing">What is Squashing?&lt;a class="td-heading-self-link" href="#what-is-squashing" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>&lt;strong>Squashing&lt;/strong> means combining multiple commits into a single commit.&lt;br>
This is useful for cleaning up your commit history before merging a feature branch—so instead of a long list of tiny or &amp;ldquo;work in progress&amp;rdquo; commits, you have one clear, meaningful commit.&lt;/p>
&lt;hr>
&lt;h2 id="why-squash-commits">Why Squash Commits?&lt;a class="td-heading-self-link" href="#why-squash-commits" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Cleaner History:&lt;/strong>&lt;br>
Makes your project history easier to read and understand.&lt;/li>
&lt;li>&lt;strong>Atomic Changes:&lt;/strong>&lt;br>
Groups related changes together, making it easier to review and revert if needed.&lt;/li>
&lt;li>&lt;strong>Professionalism:&lt;/strong>&lt;br>
Shows a tidy, intentional history when collaborating or submitting pull requests.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-to-squash-commits-using-interactive-rebase">How to Squash Commits Using Interactive Rebase&lt;a class="td-heading-self-link" href="#how-to-squash-commits-using-interactive-rebase" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Suppose your branch has several commits you want to squash into one.&lt;/p></description></item><item><title>Reordering Commits with Interactive Rebase</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/10_branches_rebasing/03_branches_rebasing_reorder/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/10_branches_rebasing/03_branches_rebasing_reorder/</guid><description>&lt;h2 id="why-reorder-commits">Why Reorder Commits?&lt;a class="td-heading-self-link" href="#why-reorder-commits" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Sometimes, you make commits in an order that doesn’t make sense for the project’s history.&lt;br>
Maybe you fixed a typo before adding the main feature, or you want related changes grouped together.&lt;br>
&lt;strong>Reordering commits&lt;/strong> helps you organize your history so it’s logical, readable, and easy to review.&lt;/p>
&lt;hr>
&lt;h2 id="how-to-reorder-commits-in-git">How to Reorder Commits in Git&lt;a class="td-heading-self-link" href="#how-to-reorder-commits-in-git" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>You use &lt;strong>interactive rebase&lt;/strong> to reorder commits.&lt;br>
This lets you pick up any commit and move it before or after others.&lt;/p></description></item><item><title>Reordering Commits</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/11_branches_cherry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/11_branches_cherry/</guid><description>&lt;h2 id="why-reorder-commits">Why Reorder Commits?&lt;a class="td-heading-self-link" href="#why-reorder-commits" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Sometimes, you make commits in an order that doesn’t make sense for the project’s history.&lt;br>
Maybe you fixed a typo before adding the main feature, or you want related changes grouped together.&lt;br>
&lt;strong>Reordering commits&lt;/strong> helps you organize your history so it’s logical, readable, and easy to review.&lt;/p>
&lt;hr>
&lt;h2 id="how-to-reorder-commits-in-git">How to Reorder Commits in Git&lt;a class="td-heading-self-link" href="#how-to-reorder-commits-in-git" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>You use &lt;strong>interactive rebase&lt;/strong> to reorder commits.&lt;br>
This lets you pick up any commit and move it before or after others.&lt;/p></description></item><item><title>Branching Workflows</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/12_branches_workflows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/12_branches_workflows/</guid><description>&lt;h2 id="what-is-a-branching-workflow">What is a Branching Workflow?&lt;a class="td-heading-self-link" href="#what-is-a-branching-workflow" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>A &lt;strong>branching workflow&lt;/strong> is a strategy for how you and your team use branches to organize work in a Git repository.&lt;br>
It defines how features, fixes, releases, and collaboration happen—making teamwork smoother and your project history clearer.&lt;/p>
&lt;hr>
&lt;h2 id="why-use-a-workflow">Why Use a Workflow?&lt;a class="td-heading-self-link" href="#why-use-a-workflow" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Organization:&lt;/strong>&lt;br>
Keeps features, fixes, and releases separate.&lt;/li>
&lt;li>&lt;strong>Collaboration:&lt;/strong>&lt;br>
Allows multiple people to work independently.&lt;/li>
&lt;li>&lt;strong>Safety:&lt;/strong>&lt;br>
Protects stable code from unfinished or experimental changes.&lt;/li>
&lt;li>&lt;strong>Traceability:&lt;/strong>&lt;br>
Makes it easy to see what was done, when, and by whom.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="common-branching-workflows">Common Branching Workflows&lt;a class="td-heading-self-link" href="#common-branching-workflows" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="1-feature-branch-workflow">1. Feature Branch Workflow&lt;a class="td-heading-self-link" href="#1-feature-branch-workflow" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Each new feature or fix gets its own branch.&lt;/strong>&lt;/li>
&lt;li>Branches are created from the main branch (often called &lt;code>main&lt;/code> or &lt;code>master&lt;/code>).&lt;/li>
&lt;li>When finished, the feature branch is merged back into &lt;code>main&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Example:&lt;/strong>&lt;/p></description></item><item><title>Branch Protection</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/13_branches_protection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/13_branches_protection/</guid><description>&lt;h2 id="what-is-branch-protection">What is Branch Protection?&lt;a class="td-heading-self-link" href="#what-is-branch-protection" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>&lt;strong>Branch protection&lt;/strong> is a set of rules that prevent unwanted changes to important branches in your repository—like &lt;code>main&lt;/code>, &lt;code>master&lt;/code>, or &lt;code>develop&lt;/code>.&lt;br>
It’s a safety feature, usually managed on platforms like GitHub, GitLab, or Bitbucket, to keep your codebase stable and secure.&lt;/p>
&lt;hr>
&lt;h2 id="why-use-branch-protection">Why Use Branch Protection?&lt;a class="td-heading-self-link" href="#why-use-branch-protection" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Prevent mistakes:&lt;/strong>&lt;br>
Stops accidental force-pushes, deletions, or direct commits to critical branches.&lt;/li>
&lt;li>&lt;strong>Enforce code review:&lt;/strong>&lt;br>
Require pull requests and approvals before merging changes.&lt;/li>
&lt;li>&lt;strong>Maintain stability:&lt;/strong>&lt;br>
Ensure only tested, reviewed code reaches production branches.&lt;/li>
&lt;li>&lt;strong>Automate checks:&lt;/strong>&lt;br>
Require passing tests, successful builds, or other checks before merging.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="common-branch-protection-rules">Common Branch Protection Rules&lt;a class="td-heading-self-link" href="#common-branch-protection-rules" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="1-require-pull-requests">1. Require Pull Requests&lt;a class="td-heading-self-link" href="#1-require-pull-requests" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Disallow direct pushes to protected branches.&lt;/li>
&lt;li>All changes must go through a pull request (PR) for review.&lt;/li>
&lt;/ul>
&lt;h3 id="2-require-reviews-and-approvals">2. Require Reviews and Approvals&lt;a class="td-heading-self-link" href="#2-require-reviews-and-approvals" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Specify that one or more team members must approve a PR before it can be merged.&lt;/li>
&lt;/ul>
&lt;h3 id="3-require-status-checks">3. Require Status Checks&lt;a class="td-heading-self-link" href="#3-require-status-checks" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Only allow merging if automated tests, builds, or other checks pass.&lt;/li>
&lt;/ul>
&lt;h3 id="4-restrict-who-can-push">4. Restrict Who Can Push&lt;a class="td-heading-self-link" href="#4-restrict-who-can-push" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Limit who can push, merge, or delete the branch (e.g., only admins or maintainers).&lt;/li>
&lt;/ul>
&lt;h3 id="5-prevent-force-pushes-and-deletion">5. Prevent Force-Pushes and Deletion&lt;a class="td-heading-self-link" href="#5-prevent-force-pushes-and-deletion" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Block force-pushes (&lt;code>git push --force&lt;/code>) to avoid rewriting history.&lt;/li>
&lt;li>Prevent accidental or malicious branch deletion.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-to-set-up-branch-protection">How to Set Up Branch Protection&lt;a class="td-heading-self-link" href="#how-to-set-up-branch-protection" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="on-github">On GitHub&lt;a class="td-heading-self-link" href="#on-github" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ol>
&lt;li>Go to your repository on GitHub.&lt;/li>
&lt;li>Click &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Branches&lt;/strong>.&lt;/li>
&lt;li>Add a branch protection rule for your chosen branch (e.g., &lt;code>main&lt;/code>).&lt;/li>
&lt;li>Select the rules you want (require PRs, reviews, status checks, etc.).&lt;/li>
&lt;li>Save the rule.&lt;/li>
&lt;/ol>
&lt;h3 id="on-gitlab">On GitLab&lt;a class="td-heading-self-link" href="#on-gitlab" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ol>
&lt;li>Go to your repository.&lt;/li>
&lt;li>Click &lt;strong>Settings&lt;/strong> &amp;gt; &lt;strong>Repository&lt;/strong> &amp;gt; &lt;strong>Protected Branches&lt;/strong>.&lt;/li>
&lt;li>Choose the branch and set permissions for who can push, merge, or delete.&lt;/li>
&lt;/ol>
&lt;h3 id="on-bitbucket">On Bitbucket&lt;a class="td-heading-self-link" href="#on-bitbucket" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ol>
&lt;li>Go to your repository.&lt;/li>
&lt;li>Click &lt;strong>Repository Settings&lt;/strong> &amp;gt; &lt;strong>Branch permissions&lt;/strong>.&lt;/li>
&lt;li>Add rules for your branches.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="example-github-branch-protection">Example: GitHub Branch Protection&lt;a class="td-heading-self-link" href="#example-github-branch-protection" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Require pull request before merging.&lt;/li>
&lt;li>Require at least one approval.&lt;/li>
&lt;li>Require status checks to pass.&lt;/li>
&lt;li>Restrict who can push.&lt;/li>
&lt;li>Block force-pushes and deletion.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="when-to-protect-a-branch">When to Protect a Branch&lt;a class="td-heading-self-link" href="#when-to-protect-a-branch" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Production branches:&lt;/strong>&lt;br>
Always protect &lt;code>main&lt;/code>, &lt;code>master&lt;/code>, or any branch deployed to users.&lt;/li>
&lt;li>&lt;strong>Release branches:&lt;/strong>&lt;br>
Protect branches used for releases or hotfixes.&lt;/li>
&lt;li>&lt;strong>Develop/integration branches:&lt;/strong>&lt;br>
Protect if multiple people merge features into them.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="tips-for-branch-protection">Tips for Branch Protection&lt;a class="td-heading-self-link" href="#tips-for-branch-protection" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Document your rules:&lt;/strong>&lt;br>
Make sure everyone on your team knows which branches are protected and why.&lt;/li>
&lt;li>&lt;strong>Review regularly:&lt;/strong>&lt;br>
Update protection rules as your team or workflow changes.&lt;/li>
&lt;li>&lt;strong>Combine with workflows:&lt;/strong>&lt;br>
Use protection rules alongside branching workflows for maximum safety.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>&lt;strong>Tip:&lt;/strong>&lt;br>
Set it up early—don’t wait for a mistake to happen!&lt;/p></description></item><item><title>Bonus Concepts</title><link>https://gitxtui.github.io/docs/learn/tutorials/branches/14_branches_bonus/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/branches/14_branches_bonus/</guid><description>&lt;p>This section covers advanced and useful Git concepts related to branching, history, and project management.&lt;br>
Even if you’re new to Git, these tools and ideas will help you understand and recover your project in tricky situations!&lt;/p>
&lt;hr>
&lt;h2 id="tags-vs-branches">Tags vs Branches&lt;a class="td-heading-self-link" href="#tags-vs-branches" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="what-is-a-tag">What is a Tag?&lt;a class="td-heading-self-link" href="#what-is-a-tag" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>A &lt;strong>tag&lt;/strong> is a fixed pointer to a specific commit.&lt;/li>
&lt;li>Used to mark important points in history, like releases (&lt;code>v1.0.0&lt;/code>, &lt;code>v2.1.3&lt;/code>).&lt;/li>
&lt;li>Tags do &lt;strong>not&lt;/strong> move—they always point to the same commit.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Create a tag:&lt;/strong>&lt;/p></description></item><item><title>How to Contribute a Blog Post to gitx Documentation</title><link>https://gitxtui.github.io/docs/blog/2025/10/02/how-to-contribute-a-blog-post-to-gitx-documentation/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/blog/2025/10/02/how-to-contribute-a-blog-post-to-gitx-documentation/</guid><description>&lt;p>Welcome to the gitx blog! We&amp;rsquo;re excited to have you here and even more excited if you&amp;rsquo;re thinking about contributing your own post. This guide will walk you through the entire process of creating and submitting a blog post to our documentation site.&lt;/p>
&lt;h2 id="what-should-you-write-about">What Should You Write About?&lt;a class="td-heading-self-link" href="#what-should-you-write-about" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>We welcome blog posts on any topic related to Git! Here are some ideas to get you started:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Git Commands Deep Dive&lt;/strong>: Explain a specific Git command in detail (like &lt;code>git bisect&lt;/code>, &lt;code>git rebase&lt;/code>, or &lt;code>git cherry-pick&lt;/code>)&lt;/li>
&lt;li>&lt;strong>Git Workflows&lt;/strong>: Share best practices for team collaboration using Git&lt;/li>
&lt;li>&lt;strong>Git History &amp;amp; Fun Facts&lt;/strong>: Interesting trivia about Git&amp;rsquo;s development or its creator&lt;/li>
&lt;li>&lt;strong>Personal Stories&lt;/strong>: How Git helped you solve a problem or improved your workflow&lt;/li>
&lt;li>&lt;strong>Tips &amp;amp; Tricks&lt;/strong>: Lesser-known Git features that make developers more productive&lt;/li>
&lt;li>&lt;strong>Tutorials&lt;/strong>: Step-by-step guides for achieving specific tasks with Git&lt;/li>
&lt;/ul>
&lt;h2 id="step-by-step-how-to-contribute">Step-by-Step: How to Contribute&lt;a class="td-heading-self-link" href="#step-by-step-how-to-contribute" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="1-fork-the-repository">1. Fork the Repository&lt;a class="td-heading-self-link" href="#1-fork-the-repository" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>Start by forking the &lt;a href="https://github.com/gitxtui/docs">&lt;code>gitxtui/docs&lt;/code>&lt;/a> repository on GitHub. Click the &amp;ldquo;Fork&amp;rdquo; button in the top-right corner of the repository page.&lt;/p></description></item><item><title>Intro to github actions</title><link>https://gitxtui.github.io/docs/blog/2025/10/02/intro-to-github-actions/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/blog/2025/10/02/intro-to-github-actions/</guid><description>&lt;h1 id="the-problem">The problem&lt;a class="td-heading-self-link" href="#the-problem" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;p>Have you ever thought about how big tech companies manage to push code into production so seamlessly? How do they make sure thousands of test cases run automatically, catch issues before they break things, and still ship updates quickly? It almost feels like magic—code goes in, and polished features come out the other side without chaos.&lt;/p>
&lt;h1 id="the-solution">The Solution&lt;a class="td-heading-self-link" href="#the-solution" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;p>The secret isn’t magic at all—it’s automation. In this blog post, we’ll explore how GitHub Actions, developer workflows, and CI/CD pipelines work together to handle testing, automatic deployments, and smooth releases. By the end, you’ll see how these tools make modern software development faster, safer, and much less stressful.&lt;/p></description></item><item><title>Git Commands That Will Actually Save Your Day</title><link>https://gitxtui.github.io/docs/blog/2025/10/02/git-commands-that-will-actually-save-your-day/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/blog/2025/10/02/git-commands-that-will-actually-save-your-day/</guid><description>&lt;p>Look, we all know &lt;code>git commit&lt;/code>, &lt;code>git push&lt;/code>, and &lt;code>git pull&lt;/code>. But Git has a treasure trove of commands that can save you hours of frustration—if only you knew they existed. Here are the genuinely useful ones that deserve way more attention.&lt;/p>
&lt;h2 id="git-reflog--your-time-machine-when-things-go-wrong">&lt;code>git reflog&lt;/code> — Your Time Machine When Things Go Wrong&lt;a class="td-heading-self-link" href="#git-reflog--your-time-machine-when-things-go-wrong" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Ever executed &lt;code>git reset --hard&lt;/code> and immediately regretted it? Or accidentally deleted a branch you needed? &lt;strong>This is your safety net.&lt;/strong>&lt;/p></description></item><item><title>How I Resolve Merge Conflicts Easily</title><link>https://gitxtui.github.io/docs/blog/2025/10/02/how-i-resolve-merge-conflicts-easily/</link><pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/blog/2025/10/02/how-i-resolve-merge-conflicts-easily/</guid><description>&lt;h1 id="how-i-resolve-merge-conflicts-easily">How I Resolve Merge Conflicts Easily&lt;a class="td-heading-self-link" href="#how-i-resolve-merge-conflicts-easily" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;p>Merge conflicts happen when Git can’t automatically combine changes from different people. It’s not scary — it just means Git needs you to decide which changes to keep.&lt;/p>
&lt;hr>
&lt;h2 id="steps-i-follow-to-resolve-conflicts">Steps I Follow to Resolve Conflicts&lt;a class="td-heading-self-link" href="#steps-i-follow-to-resolve-conflicts" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Check the conflicted files&lt;/strong>&lt;br>
Git will tell you which files have conflicts after a merge or pull.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Open the files and look for conflict markers&lt;/strong>&lt;br>
You’ll see things like &lt;code>&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;/code>, &lt;code>=======&lt;/code>, and &lt;code>&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; branch-name&lt;/code>.&lt;/p></description></item><item><title/><link>https://gitxtui.github.io/docs/learn/tutorials/git-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/learn/tutorials/git-guide/</guid><description/></item><item><title>Search Results</title><link>https://gitxtui.github.io/docs/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gitxtui.github.io/docs/search/</guid><description/></item></channel></rss>