general:git
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
general:git [2020/11/17 19:10] – created sunkan | general:git [2023/01/30 08:53] (current) – sunkan | ||
---|---|---|---|
Line 12: | Line 12: | ||
Or use "gitk --all" | 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 ~/ | ||
+ | </ | ||
+ | |||
+ | 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:// | ||
+ | + 1ec508d...c046c5f 1.x -> origin/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | 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 ~/ | ||
+ | </ | ||
+ | |||
+ | Script to automate fetching and re-applying patches | ||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | |||
+ | localbranch=mybranch-1.x | ||
+ | remotebranch=1.x | ||
+ | patchdir=~/ | ||
+ | repodir=~/ | ||
+ | |||
+ | # Generate patches | ||
+ | # git format-patch -k -o " | ||
+ | |||
+ | ( 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/ | ||
+ | cat " | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | ====== Update intermediary bare repo ====== | ||
+ | Found some good info here. \\ | ||
+ | [[https:// | ||
+ | |||
+ | First fetch from the upstream server | ||
+ | < | ||
+ | git fetch | ||
+ | </ | ||
+ | |||
+ | Then you need to update any branches that you want to expose to the downstream repositories. \\ | ||
+ | Examples for master, 13.0 and all remote branches. \\ | ||
+ | Avoid *:* if upstream repo is very big and you want to limit the branches used by downstream repositories. | ||
+ | < | ||
+ | git fetch origin master: | ||
+ | git fetch origin 13.0:13.0 | ||
+ | git fetch origin ' | ||
+ | </ | ||
+ |
general/git.1605640240.txt.gz · Last modified: 2020/11/17 19:10 by sunkan