User Tools

Site Tools


general:git

To see how branches relate

$ git log --oneline --decorate --graph --all
* c2b9e (HEAD, master) made other changes
| * 87ab2 (testing) made a change
|/
* f30ab add feature #32 - ability to add new formats to the
* 34ac2 fixed bug #1328 - stack overflow under certain conditions
* 98ca9 initial commit of my project

Or use “gitk –all”

Generate patch and apply to branch with different commit history

Generate patches for local commits from origin/1.x

$ git format-patch -k -o ~/patches_dir/ origin/1.x

Check if a forced update is pending

$ git fetch --dry-run
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 26 (delta 12), reused 21 (delta 7), pack-reused 0
Unpacking objects: 100% (26/26), done.
From https://somerepo
 + 1ec508d...c046c5f 1.x        -> origin/1.x  (forced update)

Update local branch when we know there is going to be a forced update

$ git checkout master # Needs to be performed before doing fetch
$ git fetch
$ git branch -D 1.x
$ git checkout -b mybranch-1.x origin/1.x

Apply patches to branch

$ cat ~/patches_dir/* | git am -k

Script to automate fetching and re-applying patches

#!/bin/sh
 
localbranch=mybranch-1.x
remotebranch=1.x
patchdir=~/patches_dir
repodir=~/the_cloned_repo
 
# Generate patches
# git format-patch -k -o "$patchdir" origin/$remotebranch
 
( cd $repodir
  # Apply patches
  git checkout master # Needs to be run before fetch
  git branch -D $localbranch-old
  git branch -m $localbranch $localbranch-old
  git fetch
  git checkout -b $localbranch origin/$remotebranch
  cat "$patchdir"/*.patch | git am -k
)
general/git.txt · Last modified: 2021/12/20 10:27 by