User Tools

Site Tools


linux:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:git [2025/12/11 10:08] – [Delete remote branch] v1ctorlinux:git [2026/02/13 18:52] (current) – [SQUASH] v1ctor
Line 1: Line 1:
 ====== GIT ====== ====== GIT ======
  
-==== Check out remote branch ====+==== CHECK OUT REMOTE BRANCH ====
  
 <code bash> <code bash>
Line 8: Line 8:
                                       // 3. Move your working directory to that branch                                       // 3. Move your working directory to that branch
 </code> </code>
 +---------------
 ==== DELETE REMOTE BRANCH ==== ==== DELETE REMOTE BRANCH ====
  
Line 14: Line 14:
 <code bash> <code bash>
 git branch -a git branch -a
 +git fetch -p  # Remove any stale references from your local list that no longer exist remotely
 </code> </code>
  
 +Delete remote branch:
 <code bash> <code bash>
 git push origin --delete <branch-name> git push origin --delete <branch-name>
 </code> </code>
-==== Accidentally committed on master ====+--------------- 
 +==== ACCIDENTALLY COMITED ON MASTER ====
  
 If changes were accidentally committed on ''master'' and we want to move them to a new branch: If changes were accidentally committed on ''master'' and we want to move them to a new branch:
Line 42: Line 45:
 git log --oneline master git log --oneline master
 </code> </code>
 +---------------
  
 +==== SQUASH ====
  
 +Scenario - you would like to "squash" several commits in your branch before submitting the merge request, so that all your changes look like a single commit.
 +
 +**Step 1** - Find the **base commit** where your branch diverged from main
 +<code bash>
 +git merge-base master HEAD
 +</code>
 +
 +**Step 2** - Start interactive rebase from that commit:
 +<code bash>
 +git rebase -i abc123
 +</code>
 +
 +**Step 3** - In editor which will open, change all but the first pick to squash or just s:
 +<code bash>
 +pick abc123 My first commit
 +squash def456 My second commit
 +squash ghi789 My third commit
 +</code>
 +
 +**Step 4** - Editor will open again for a commit message. Edit as you wish.
 +
 +**Step 5** - Push with force:
 +<code bash>
 +git push --force
 +</code>
 +
 +**Step 6** - When trying to pull after these changes, you might need to rebase:
 +<code>
 +git config pull.rebase true
 +git pull
 +</code>
 +
 +==== CHANGE COMMIT MESSAGE ====
 +
 +If the commit has been already pushed to the upstream, and it's the latest commit:
 +
 +<code bash>
 +git commit --amend # edit the commit msg
 +git push --force
 +</code>
linux/git.1765447718.txt.gz · Last modified: by v1ctor