<?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: Bruno Brito</title>
    <description>The latest articles on DEV Community by Bruno Brito (@brunobrito).</description>
    <link>https://dev.to/brunobrito</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%2F832320%2Fbaf2afcb-ab46-4bb0-981e-1d24f9de02f9.png</url>
      <title>DEV Community: Bruno Brito</title>
      <link>https://dev.to/brunobrito</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brunobrito"/>
    <language>en</language>
    <item>
      <title>Tower 16 for Mac – Introducing AI Commits ✨</title>
      <dc:creator>Bruno Brito</dc:creator>
      <pubDate>Tue, 14 Apr 2026 17:28:22 +0000</pubDate>
      <link>https://dev.to/brunobrito/tower-16-for-mac-introducing-ai-commits-215l</link>
      <guid>https://dev.to/brunobrito/tower-16-for-mac-introducing-ai-commits-215l</guid>
      <description>&lt;p&gt;Writing commit messages pulls you out of your flow. You've just finished implementing something, your head is full of context, and now you have to stop and summarize it in a way your future self (and your teammates) will actually understand.&lt;/p&gt;

&lt;p&gt;This has been one of the most requested features for &lt;a href="https://www.git-tower.com?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=tower-mac-16" rel="noopener noreferrer"&gt;Tower&lt;/a&gt;, our Git client for Mac, and I'm excited to share that it's finally here: &lt;strong&gt;AI Commits&lt;/strong&gt; can now generate commit messages and descriptions for you, directly from the Working Copy.&lt;/p&gt;

&lt;p&gt;Here's a quick tour of what's new in Tower 16.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/5dgsLTGbEHk"&gt;
  &lt;/iframe&gt;
.&lt;/p&gt;

&lt;h2&gt;
  
  
  A refreshed Working Copy view
&lt;/h2&gt;

&lt;p&gt;When you open the Working Copy, you'll notice the Commit Composing area has been redesigned with a few handy additions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Expanded Body View&lt;/strong&gt; — keep the description field visible at all times.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit Templates&lt;/strong&gt; — apply a previously saved template to the subject and description fields with one click.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hard Line Wrap&lt;/strong&gt; — toggle automatic line wrapping for your commit descriptions.&lt;/li&gt;
&lt;/ul&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%2Fzmidrn1mkrwfvkaicvv7.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%2Fzmidrn1mkrwfvkaicvv7.png" alt="Tower 16 for Mac — New Working Copy View" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But the real star is the new button on the right side.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Commits in action
&lt;/h2&gt;

&lt;p&gt;Stage your changes, click the new &lt;strong&gt;"✨ Generate"&lt;/strong&gt; button, and Tower will produce a commit message and description in seconds.&lt;/p&gt;

&lt;p&gt;Next to the button, there's a dropdown that lets you pick from preset prompts — handy for switching between a quick one-liner and a more detailed, thorough message depending on the situation.&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%2Fy142x3jaqh8f6z76wd5o.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%2Fy142x3jaqh8f6z76wd5o.png" alt="Preset Prompts dropdown" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring it your way
&lt;/h2&gt;

&lt;p&gt;A new &lt;strong&gt;"AI" tab&lt;/strong&gt; in Settings gives you full control:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick your &lt;strong&gt;AI provider&lt;/strong&gt; — Tower 16 supports &lt;strong&gt;Claude Code&lt;/strong&gt; and &lt;strong&gt;Codex&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create, edit, and delete custom prompts&lt;/strong&gt; to match your team's conventions.&lt;/li&gt;
&lt;/ol&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%2F9z1x5scvibdra3ud23ad.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%2F9z1x5scvibdra3ud23ad.png" alt="New " width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The custom prompt system is where things get really interesting. If your team follows &lt;a href="https://www.conventionalcommits.org/" rel="noopener noreferrer"&gt;Conventional Commits&lt;/a&gt;, uses &lt;a href="https://gitmoji.dev/" rel="noopener noreferrer"&gt;Gitmoji&lt;/a&gt;, or has any other formatting rules, you can encode that directly into a prompt so every generated message fits your style.&lt;/p&gt;

&lt;p&gt;Here are a few prompts to get you started:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick &amp;amp; Simple&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Summarize the following code changes in a single short commit message (under 72 characters). Be direct and describe what changed, not why.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Gitmoji&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Write a commit message for the following changes using the gitmoji convention. Start the subject line with the most appropriate gitmoji (e.g. ✨ for a new feature, 🐛 for a bug fix, ♻️ for refactoring, 🎨 for style/structure improvements). Keep the subject under 72 characters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Conventional Commits&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Write a commit message following the Conventional Commits specification. Use the format &lt;code&gt;type(scope): description&lt;/code&gt;. Choose the appropriate type (feat, fix, refactor, chore, docs, style, test, perf, ci, build). Include a body paragraph explaining the motivation and what changed if the diff is non-trivial.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Other new features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Partial Stash&lt;/strong&gt; — drag individual files from the Working Copy onto Stashes to create a partial stash, including untracked files.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Improvements and fixes
&lt;/h2&gt;

&lt;p&gt;A selection of the most notable changes in this release:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Graphite:&lt;/strong&gt; Performance with large numbers of branches has been significantly improved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diff/Merge Tools:&lt;/strong&gt; Tower now validates the tool configuration before launching and provides better error feedback on failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;History:&lt;/strong&gt; Fixed a crash that could occur when reloading history; the fully merged badge and history banner now update correctly after fetch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worktrees:&lt;/strong&gt; Fixed an issue where worktree repositories could lose their connection to the main repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance:&lt;/strong&gt; Fixed unnecessary UI updates in repositories with Graphite or worktrees that could cause sluggish performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Startup:&lt;/strong&gt; Fixed a crash during app initialization that could prevent users from registering or using Tower.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS 26:&lt;/strong&gt; Several fixes, including a sidebar crash in tabbed windows and toolbar separator issues.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Tower 16 is currently in Beta. If you try AI Commits, I'd love to hear which prompts work best for your team — drop a comment below!&lt;/p&gt;

</description>
      <category>git</category>
      <category>productivity</category>
      <category>ai</category>
      <category>software</category>
    </item>
    <item>
      <title>2024's Git Survey is Live!</title>
      <dc:creator>Bruno Brito</dc:creator>
      <pubDate>Thu, 24 Oct 2024 15:30:52 +0000</pubDate>
      <link>https://dev.to/gittower/2024s-git-survey-is-live-1md8</link>
      <guid>https://dev.to/gittower/2024s-git-survey-is-live-1md8</guid>
      <description>&lt;p&gt;Git has become an indispensable tool for developers, not only to keep track of changes but also for collaboration. But how well do you really know this powerful tool? And what aspects could use some improvement? 🤔&lt;/p&gt;

&lt;p&gt;We would love to know!&lt;/p&gt;

&lt;p&gt;This is your chance to share your insights, experiences, and pain points with Git, whether you're a seasoned pro or just starting out. By participating in this &lt;a href="https://www.git-tower.com/survey" rel="noopener noreferrer"&gt;survey&lt;/a&gt;, you'll not only contribute to a better understanding of how developers interact with Git, but you'll also help shape the future of &lt;a href="https://www.git-tower.com/" rel="noopener noreferrer"&gt;Tower's Git client&lt;/a&gt; ☺️&lt;/p&gt;

&lt;p&gt;As a token of appreciation for your time and valuable input, &lt;strong&gt;every participant will be automatically entered into a raffle to win one of ten $50 Amazon gift cards&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.git-tower.com/survey" rel="noopener noreferrer"&gt;survey&lt;/a&gt; is open now, and it only takes a few minutes to complete!&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>gitlab</category>
      <category>programming</category>
    </item>
    <item>
      <title>What's New in Tower 10</title>
      <dc:creator>Bruno Brito</dc:creator>
      <pubDate>Wed, 02 Aug 2023 20:59:54 +0000</pubDate>
      <link>https://dev.to/gittower/whats-new-in-tower-10-4k89</link>
      <guid>https://dev.to/gittower/whats-new-in-tower-10-4k89</guid>
      <description>&lt;p&gt;The much-anticipated version 10 of our Git client has been released, and it's our most colorful update yet.&lt;/p&gt;

&lt;p&gt;Why? Because we've introduced Syntax Coloring to every file and diff view!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PW2G_DZw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wd4uhiske4abk44rprv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PW2G_DZw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wd4uhiske4abk44rprv.jpg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With support for nearly 200 languages, your Git repository's code is now more readable than ever! We also took the opportunity to add two other customization options that have been highly requested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The possibility to show or hide invisible characters.&lt;/li&gt;
&lt;li&gt;The ability to configure the preferred tab width (the default is 4).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It looks beautiful in dark mode, too! 😍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tBMghAaV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yyi8nwbfwmpwjwfux4zp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tBMghAaV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yyi8nwbfwmpwjwfux4zp.jpg" alt="Image description" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tower's themes have also been fully updated to support the new Syntax Highlighting feature. That said, you can still modify them to your liking or create new ones from scratch.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://www.git-tower.com/"&gt;download a 30-day trial for free&lt;/a&gt; to try it out! No registration or email is required.&lt;/p&gt;

&lt;p&gt;P.S. This is the first of many exciting features that are on &lt;a href="https://www.git-tower.com/blog/coming-up-on-the-roadmap-2023/"&gt;our roadmap&lt;/a&gt; for the upcoming months. Keep an eye out for what's to come! 🔥&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>news</category>
    </item>
    <item>
      <title>Why You Should Use a Git Client</title>
      <dc:creator>Bruno Brito</dc:creator>
      <pubDate>Tue, 22 Nov 2022 18:38:08 +0000</pubDate>
      <link>https://dev.to/brunobrito/why-you-should-use-a-git-client-2dpe</link>
      <guid>https://dev.to/brunobrito/why-you-should-use-a-git-client-2dpe</guid>
      <description>&lt;p&gt;I started programming 7 years ago. After watching dozens of YouTube tutorials, I decided to take things more seriously and enroll in a coding bootcamp in 2015. &lt;/p&gt;

&lt;p&gt;It was hard work, but I had a blast! We covered HTML/CSS/JS, Ruby, Ruby on Rails, and Git.&lt;/p&gt;

&lt;p&gt;We were encouraged to use the command line as much as we could, so I got pretty comfortable with Git's most popular commands, such as &lt;code&gt;git commit&lt;/code&gt;, &lt;code&gt;git branch&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt;, and &lt;code&gt;git pull&lt;/code&gt;. I worked mostly solo during that time, so those commands were usually enough for my daily workflow.&lt;/p&gt;

&lt;p&gt;When I finished my bootcamp, I wasn't working alone anymore. I learned the hard way how to amend commits, fix merge conflicts, and what force push was about. It started to become a bit overwhelming 😰&lt;/p&gt;

&lt;p&gt;As projects got more and more complex, I was feeling blind with just a terminal by my side, so I took the plunge and explored what Git clients had to offer. &lt;/p&gt;

&lt;h2&gt;
  
  
  Adding a Git Client to My Web Development Workflow
&lt;/h2&gt;

&lt;p&gt;Like many others, I started with Sourcetree, a free Git client. The visual aid it provided opened my eyes (pun intended) to how I could become more productive with Git. &lt;/p&gt;

&lt;p&gt;I could easily:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;find the commits and branches I needed&lt;/li&gt;
&lt;li&gt;have a look at what changed in each commit&lt;/li&gt;
&lt;li&gt;add service accounts (like GitHub) for quick cloning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first, I felt guilty — using a Git client was sometimes seen as cheating! For this reason, I would still go back to the command line to recreate some operations, or read the Git documentation to figure out how to type some commands.&lt;/p&gt;

&lt;p&gt;I was acting as if the Git client wouldn't be there for me tomorrow. I guess I didn't want to let my bootcamp senseis and my peers down 😶&lt;/p&gt;

&lt;p&gt;Looking back, that doesn't make much sense to me. I should be busy coding, not wrestling with Git! So I started relying more and more on Git clients. That gave me more time to learn how to properly center a div and keep up with JavaScript frameworks.&lt;/p&gt;

&lt;p&gt;Sourcetree was a great introduction to what a Git GUI can bring to the table, but I didn't stop there. I always enjoy trying out new apps, so I gave many other Git clients a shot — some free, some paid. Now, I have the privilege of doing that for a living (I work at Tower).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.git-tower.com" rel="noopener noreferrer"&gt;Tower&lt;/a&gt; is my favorite of the bunch. &lt;strong&gt;It's available for both Mac and Windows and is currently on sale — 50% off for the first year (Black Friday deal).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tower also offers a 30-day trial with all the features. It doesn't ask for an email account or credit card, so there's absolutely no pressure to give it a shot. &lt;/p&gt;

&lt;p&gt;Oh, and it's free for students and teachers!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Think You Should Give Tower a Try
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.git-tower.com" rel="noopener noreferrer"&gt;Tower&lt;/a&gt; has all the basic features you would expect from a premium Git client. It can perform any Git operation with the greatest of ease, like staging files (or chunks), amending commits, merging and rebasing, stashing, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fk4jap3w4p03ihfsvxune.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fk4jap3w4p03ihfsvxune.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It supports all the popular remote services, such as GitHub, BitBucket, GitLab, Azure DevOps, Perforce, or Beanstalk. You can clone and publish new repositories directly in the client, manage pull requests, and perform repetitive actions (like fetching) automatically for you.&lt;/p&gt;

&lt;p&gt;It has many quality-of-life improvements, like managing multiple author profiles and GPG keys, a command palette, a CLI tool, LFS and submodule support, and themes.&lt;/p&gt;

&lt;p&gt;But the big differences are in the details. And no other app comes close to Tower when it comes to intuitiveness and feeling productive.&lt;/p&gt;

&lt;p&gt;Here are 4 things that I think are worth highlighting:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Native App
&lt;/h3&gt;

&lt;p&gt;I don't hate Electron apps, but sometimes they don't feel right (maybe that's why I still prefer to use SublimeText over VS Code). I tend to use native apps, even though they're hard to come by.&lt;/p&gt;

&lt;p&gt;Tower was developed using native technologies, and it shows. It's a joy to look at and the performance is stunning. Even while working with large repositories, I never felt any hiccups.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Undo
&lt;/h3&gt;

&lt;p&gt;Quite possibly my favorite feature. Other Git clients also allow you to undo some actions, but sometimes they don't work as you'd expect (or some actions are missing).&lt;/p&gt;

&lt;p&gt;With Tower, you just need to hit CMD+Z (or CTRL+Z on Windows) whenever you make a mistake. This is a huge confidence-booster for me; every once in a while I'm just going through the motions and I accidentally mess things up.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fs4qcc5op6aoyq1yutzlx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fs4qcc5op6aoyq1yutzlx.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can undo pretty much any action; every time I run into an issue, I just hit CMD+Z and it works. It has never let me down — even while merging or rebasing.&lt;/p&gt;

&lt;p&gt;Another thing I find really neat is that it can recover file discards — which is something that Git doesn't actually allow! I was pleasantly surprised the first time I pressed CMD+Z and the discarded file returned to my working copy 🤩&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Working with Branches
&lt;/h3&gt;

&lt;p&gt;I'm constantly checking out different branches, so I really appreciate the effort the team put into this.&lt;/p&gt;

&lt;p&gt;First, checking out branches is a breeze. You can use Quick Actions (Tower's command palette) or, if it's a frequently used branch, you can pin it to the sidebar.&lt;/p&gt;

&lt;p&gt;I also enjoy how you can compare branches to pinpoint the commits that are exclusive to a branch, or how it tells you that you will need to solve a merge conflict if you go ahead and merge that branch. &lt;/p&gt;

&lt;p&gt;The "Branches Review" view even identifies which branches are safe to be removed, so that you can clean up messy repositories without looking over your shoulder.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Drag and Drop
&lt;/h3&gt;

&lt;p&gt;Another prime example of how Tower thinks differently is how Drag and Drop was implemented. It’s so intuitive that I miss it when I'm not using Tower for a Git operation.&lt;/p&gt;

&lt;p&gt;I can drag and drop to cherry-pick commits by simply dragging commits from another branch to the HEAD branch. I can move commits around or drop one on top of another to perform a squash. Interactive Rebase is &lt;em&gt;really&lt;/em&gt; easy this way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F3ag84nvbdjs9nq5c7w79.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3ag84nvbdjs9nq5c7w79.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I often spend a good chunk of time reviewing and tweaking the commits I added before pushing everything to the remote repository. Drag and drop is vital in this process.&lt;/p&gt;

&lt;p&gt;While those are my favorite use cases, drag and drop also works to merge, push, and pull. It's even possible to create (or publish) branches this way.&lt;/p&gt;




&lt;p&gt;I don't waste time with Git anymore — everything just works! For this reason, I highly encourage you to give &lt;a href="https://www.git-tower.com/" rel="noopener noreferrer"&gt;Tower&lt;/a&gt; a try (even if you're proficient with the command line)!&lt;/p&gt;

&lt;p&gt;What about you? What's your favorite Git client and why?&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Getting Started with Git Bash</title>
      <dc:creator>Bruno Brito</dc:creator>
      <pubDate>Thu, 24 Mar 2022 13:08:48 +0000</pubDate>
      <link>https://dev.to/brunobrito/getting-started-with-git-bash-4gip</link>
      <guid>https://dev.to/brunobrito/getting-started-with-git-bash-4gip</guid>
      <description>&lt;p&gt;Git Bash is a very popular package for Windows. As the name suggests, it includes not only Git, a Version Control System for tracking code changes, but also Bash, a UNIX command line shell. In this guide, let's install Git Bash to get you up and running with Git!&lt;/p&gt;

&lt;p&gt;Before we get started, let's understand why we need to install Git Bash. Couldn't we just use CMD or Windows PowerShell to work with Git?&lt;/p&gt;

&lt;p&gt;Git is a combination of command line programs that were built to execute on a Unix environment. Operating systems based on Unix, like Linux or macOS, come with Bash (Bourne Again SHell), which ensures that Git runs smoothly across these systems.&lt;/p&gt;

&lt;p&gt;Windows is not included in this list (it's a DOS-based operating system), so it doesn't support Git out of the box. This is solved by — you guessed it! — installing Git Bash, which will provide the necessary emulation to access all the command line tools Git needs. You will also be able to use other useful Bash utilities, such as &lt;code&gt;ssh&lt;/code&gt;, &lt;code&gt;cat&lt;/code&gt;, &lt;code&gt;scp&lt;/code&gt; or &lt;code&gt;nano&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Now that you understand &lt;em&gt;why&lt;/em&gt; you need Git Bash, it's time to download and install it!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Install Git Bash on Windows
&lt;/h2&gt;

&lt;p&gt;Let's start by downloading the Git Bash executable from the &lt;a href="https://git-scm.com/downloads"&gt;official website&lt;/a&gt;. You should quickly notice the "download" area on the right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6cSxqS1l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1b0qbzxhhmaxru1t92y1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6cSxqS1l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1b0qbzxhhmaxru1t92y1.jpg" alt="Git Bash website" width="880" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the download is finished, run the installer (make sure you have Windows administrator privileges). After allowing the app to make changes to your Windows device and reading the GNU General Public License, the Git Bash installation wizard will prompt you some questions.&lt;/p&gt;

&lt;p&gt;The default options should be fine for most users, but there are a couple of questions worthy of your attention. Let's have a look at these before clicking "Next" blindfold.&lt;/p&gt;

&lt;h3&gt;
  
  
  Select Components
&lt;/h3&gt;

&lt;p&gt;On this screen, you can pick the components you would like to install. For instance, you can add the "Additional Icons" component if you want to have a Git Bash shortcut on the desktop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qx9yeaOJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/96ryx3mrcgpt5mwddqdo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qx9yeaOJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/96ryx3mrcgpt5mwddqdo.jpg" alt="Git Bash — Select Components" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing the Default Editor used by Git
&lt;/h3&gt;

&lt;p&gt;You can use any text editor with Git. For historical reasons, Vim is the default option, but even the wizard recommends switching to a more modern GUI editor, like &lt;a href="https://code.visualstudio.com/"&gt;VS Code&lt;/a&gt; or &lt;a href="https://www.sublimetext.com/"&gt;Sublime Text&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;We also suggest you pick a different one, unless you're comfortable with Vim already! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1A-v98fl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j39o4j7nb478vwll0a8u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1A-v98fl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j39o4j7nb478vwll0a8u.jpg" alt="Git Bash — Choosing the default editor used by Git" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Adjusting the Name of the Initial Branch in New Repositories
&lt;/h3&gt;

&lt;p&gt;When you initialize a new Git repository, you will have an initial branch created for you. The default branch name is "master"; because of the negative association with this word, that is bound to change soon — many organizations in the Git ecosystem, like &lt;a href="https://github.com/github/renaming"&gt;GitHub&lt;/a&gt; or &lt;a href="https://about.gitlab.com/blog/2021/03/10/new-git-default-branch-name/"&gt;GitLab&lt;/a&gt;, are replacing "master" with "main".&lt;/p&gt;

&lt;p&gt;While this won't affect existing repositories, you may want to select "Override the default branch name for new repositories" and type a different default branch name for new projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--v8wztoRM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uuqcyagfy41t86ld6rec.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--v8wztoRM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uuqcyagfy41t86ld6rec.jpg" alt="Git Bash — Adjusting the name of the initial branch in new repositories" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After carefully reviewing these questions, proceed until you complete the Setup Wizard. &lt;/p&gt;

&lt;p&gt;If you leave "Launch Git Bash" selected, the Wizard will finish by launching the Git Bash Terminal. Otherwise, you can launch Git Bash from the Windows Start Menu or by right-clicking any folder and selecting the "Git Bash Here" option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IZJRI5iQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qq6qhf5shxl3i24wvh90.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IZJRI5iQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qq6qhf5shxl3i24wvh90.jpg" alt="Git Bash window" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once in the command line, you can confirm Git is installed by typing &lt;code&gt;git --version&lt;/code&gt; (this will tell you the currently installed version). Git will now also work on CMD and Windows PowerShell.&lt;/p&gt;

&lt;p&gt;We're almost there! There's just one more step...&lt;/p&gt;

&lt;h3&gt;
  
  
  Defining the Username and Email Address
&lt;/h3&gt;

&lt;p&gt;Before we can start working with Git, we still need to define our username and email address. We will only be able to add commits after setting these options.&lt;/p&gt;

&lt;p&gt;To set the username:&lt;br&gt;
&lt;code&gt;git config --global user.name "FIRST_NAME LAST_NAME"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To set the email address:&lt;br&gt;
&lt;code&gt;git config --global user.email "MY_NAME@example.com"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can always review all the configuration items by typing:&lt;br&gt;
&lt;code&gt;git config --list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you prefer, you can also edit these settings with a text editor. Git Bash installed &lt;code&gt;nano&lt;/code&gt;, so we could type &lt;code&gt;nano ~/.gitconfig&lt;/code&gt; to make some changes directly in the Terminal. When you're done, press CTRL+X to exit.&lt;/p&gt;

&lt;p&gt;We're all set. Hooray! 🎉&lt;/p&gt;

&lt;p&gt;For a list of basic Bash and Git commands (including a couple of useful cheat sheets), make sure you read the rest of our &lt;a href="https://www.git-tower.com/blog/git-bash/"&gt;Git Bash guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>terminal</category>
    </item>
  </channel>
</rss>
