<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ArchiveCreativity</title>
    <description>The latest articles on Forem by ArchiveCreativity (@acreativity).</description>
    <link>https://forem.com/acreativity</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%2F3420099%2Ff158bbe5-7e72-4483-bc15-b43fef521b25.png</url>
      <title>Forem: ArchiveCreativity</title>
      <link>https://forem.com/acreativity</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/acreativity"/>
    <language>en</language>
    <item>
      <title>Why Git “Gets Weird”: Merge vs. Rebase, and Where Troubleshooting Comes From</title>
      <dc:creator>ArchiveCreativity</dc:creator>
      <pubDate>Fri, 08 Aug 2025 10:00:03 +0000</pubDate>
      <link>https://forem.com/acreativity/why-git-gets-weird-merge-vs-rebase-and-where-troubleshooting-comes-from-10ag</link>
      <guid>https://forem.com/acreativity/why-git-gets-weird-merge-vs-rebase-and-where-troubleshooting-comes-from-10ag</guid>
      <description>&lt;p&gt;Git isn’t hard because the commands are complicated. It’s hard because you’re manipulating &lt;strong&gt;history&lt;/strong&gt;, and history has rules. Most headaches (conflicts, detached HEAD, “where did my commits go?”) come from confusing two different ways of combining work: &lt;strong&gt;merge&lt;/strong&gt; and &lt;strong&gt;rebase&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is the shortest possible tour of what’s actually happening, why things break, and how teams keep the pain low.&lt;/p&gt;




&lt;h2&gt;
  
  
  Two ways to combine work
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Merge: keep all paths, stitch them together
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You and your teammate diverge from &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;When you merge, Git creates a &lt;strong&gt;new merge commit&lt;/strong&gt; with two parents.&lt;/li&gt;
&lt;li&gt;Result: a &lt;strong&gt;true historical record&lt;/strong&gt;. You see the branch split and the join.&lt;/li&gt;
&lt;li&gt;Trade-off: history gets noisy (extra merge commits).&lt;/li&gt;
&lt;li&gt;If your branch has diverged for a long time, a merge can pull in unrelated file changes you weren’t tracking, and you may not notice until they trigger a test failure later. Always scan the merge diff, not just your own commits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use when: multiple people are collaborating on the same branch, and you care about an audit trail that shows &lt;em&gt;exactly&lt;/em&gt; when branches converged.&lt;/p&gt;




&lt;h3&gt;
  
  
  2) Rebase: replay your commits on top of another branch
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Git &lt;strong&gt;lifts your commits off&lt;/strong&gt; your branch and &lt;strong&gt;reapplies&lt;/strong&gt; them as if they were created after &lt;code&gt;main&lt;/code&gt;’s latest work.&lt;/li&gt;
&lt;li&gt;Result: &lt;strong&gt;linear history&lt;/strong&gt;. Looks clean, and bisecting is simpler.&lt;/li&gt;
&lt;li&gt;Trade-off: you are &lt;strong&gt;rewriting commit IDs&lt;/strong&gt;. If others already pulled your branch, you have changed the ground under their feet.&lt;/li&gt;
&lt;li&gt;Rebasing a branch with merge commits can create “conflict déjà vu” the same conflict repeating multiple times for each commit that touched those lines. Squash related commits before rebasing to reduce pain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use when: it is a &lt;strong&gt;private feature branch&lt;/strong&gt;, you want a neat history before merging, and you are comfortable rewriting your own local commits.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where the trouble starts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Conflicts: unavoidable by design
&lt;/h3&gt;

&lt;p&gt;Conflicts are not a failure of Git; they are Git refusing to guess. If two commits edit the same lines differently, Git stops and makes you choose. You will see this with &lt;strong&gt;both&lt;/strong&gt; merge and rebase. The tool differs, the root cause does not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it feels worse during rebase:&lt;/strong&gt; you resolve conflicts &lt;strong&gt;commit by commit&lt;/strong&gt; as Git replays your work. It is more steps, but each conflict is narrower and easier to reason about.&lt;/p&gt;




&lt;h3&gt;
  
  
  Detached HEAD: history editing without a branch
&lt;/h3&gt;

&lt;p&gt;“Detached HEAD” means you are &lt;strong&gt;on a commit, not a branch&lt;/strong&gt;. You can still make commits, but they are easy to lose if you check out something else.&lt;/p&gt;

&lt;p&gt;If you pull or fetch in a detached HEAD and then reset, you can silently drop commits without warning. Anchoring them to a branch first avoids permanent loss.&lt;/p&gt;

&lt;p&gt;How you end up here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checked out a raw commit (&lt;code&gt;git checkout &amp;lt;sha&amp;gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Mid rebase, mid bisect, or after an interrupted operation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why it is scary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New commits are not anchored to a branch name. If you move away, they become hard to find unless you know to use &lt;code&gt;git reflog&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  “My commits disappeared”
&lt;/h3&gt;

&lt;p&gt;They did not. Rebasing &lt;strong&gt;rewrites commit IDs&lt;/strong&gt;, so your old IDs vanish from the current view. The actual work is still in the object database.&lt;/p&gt;

&lt;p&gt;Reflog entries expire after a time limit (default 90 days for unreachable commits). If you wait too long, recovery might be impossible without a full .git backup.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find them with &lt;code&gt;git reflog&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Create a branch at the old position if needed.&lt;/li&gt;
&lt;li&gt;Most “lost work” stories are just unfamiliarity with reflog.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Force push vs. force-with-lease
&lt;/h3&gt;

&lt;p&gt;If you rebase a branch that others also push to, your local history no longer matches the remote. A raw &lt;code&gt;--force&lt;/code&gt; overwrites whatever is there. Safer is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;csharp
CopyEdit
git push --force-with-lease

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That only updates the remote if it still points to what &lt;strong&gt;you&lt;/strong&gt; last fetched, which protects teammates from accidental overwrites.&lt;/p&gt;

&lt;p&gt;We’ve made every Git mistake so you don’t have to. Follow us for more battle-tested tips, straight from the trenches.&lt;/p&gt;

</description>
      <category>githubchallenge</category>
      <category>githubhack23</category>
      <category>devchallenge</category>
      <category>osdc</category>
    </item>
    <item>
      <title>5 Code Review Mistakes That Slow Your Team Down (and How to Fix Them)</title>
      <dc:creator>ArchiveCreativity</dc:creator>
      <pubDate>Thu, 07 Aug 2025 18:02:36 +0000</pubDate>
      <link>https://forem.com/acreativity/5-code-review-mistakes-that-slow-your-team-down-and-how-to-fix-them-135i</link>
      <guid>https://forem.com/acreativity/5-code-review-mistakes-that-slow-your-team-down-and-how-to-fix-them-135i</guid>
      <description>&lt;p&gt;Code reviews are critical for quality—but many teams waste hours on trivial issues or get bogged down in nitpicks. I’ve seen dozens of reviews stall progress because of five all-too-common mistakes.&lt;/p&gt;

&lt;p&gt;In this post you’ll learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which pitfalls trip up reviewers (and authors)
&lt;/li&gt;
&lt;li&gt;How to streamline your review process
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;free, fillable PDF cheat sheet&lt;/strong&gt; to guide every review step
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  1. Diving into Style Before Substance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The mistake:&lt;/strong&gt; Flagging indentation, whitespace, or naming first.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Start with &lt;strong&gt;correctness &amp;amp; logic&lt;/strong&gt;. Ensure the code solves its purpose before obsessing over style.  &lt;/p&gt;




&lt;h2&gt;
  
  
  2. Reviewing Huge Pull Requests in One Go
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The mistake:&lt;/strong&gt; Tackling 300-line diffs without a plan.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Scope PRs to ~200 lines or ask the author to split changes. Use “Before You Begin” checks to decide if the PR is review-ready.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Leaving Vague Feedback
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The mistake:&lt;/strong&gt; Comments like “This is confusing.”&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Be specific:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Consider renaming &lt;code&gt;orderId&lt;/code&gt; → &lt;code&gt;customerOrderId&lt;/code&gt; for clarity.”  &lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. Ignoring Security &amp;amp; Edge Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The mistake:&lt;/strong&gt; Assuming happy-path only.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Explicitly tick off “Security &amp;amp; Error Handling” from your checklist—validate inputs, sanitize, and catch exceptions.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Skipping the Approval Workflow
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The mistake:&lt;/strong&gt; Merging as soon as checks pass, with no follow-ups.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; Have a clear sign-off:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mark “Approved”
&lt;/li&gt;
&lt;li&gt;Note minor items for later cleanup
&lt;/li&gt;
&lt;li&gt;Assign follow-up tickets if needed
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Streamline Reviews with a Cheat Sheet
&lt;/h2&gt;

&lt;p&gt;Want a &lt;strong&gt;ready-made PDF&lt;/strong&gt; that covers all these steps—complete with fillable checkboxes, section prompts, and best-practice reminders? Grab my &lt;strong&gt;Code Review Cheat Sheet&lt;/strong&gt; on Gumroad for &lt;strong&gt;\$7.95&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://archivecreativity.gumroad.com/l/codereviewcheat" rel="noopener noreferrer"&gt;Code Review Cheat Sheet PDF&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Save time, avoid oversights, and keep your team aligned.&lt;/em&gt;  &lt;/p&gt;

</description>
      <category>developers</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
