Created
September 15, 2017 02:15
-
-
Save grimzy/a1d3aae40412634df29cf86bb74a6f72 to your computer and use it in GitHub Desktop.
Git pull all remote branches
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done | |
git fetch --all | |
git pull --all |
git branch -r | grep -v '->' | tr -d 'origin/' | while read remote; do echo "parsing branch $remote"; git checkout "$remote"; git reset --hard $remote ; git pull; echo "$remote done";done
Your tr
command is incorrect, as it deletes characters in the list. You want sed.
$ echo "origin/docubranch" | tr -d 'origin/'
emtesdcubach
$ echo "origin/docubranch" | sed -e 's/^origin\///'
docubranch
@jcwren thanks, I fixed it
This was so helpful! Thank you!
great
Going to come in with a controversial new option:
git branch --remote | cut -c 10- | xargs -d\\n -n1 git switch -f
Just make sure you've committed or stashed all of your changes. This does assume that your remote is called origin
, if it's not, change the number of digits getting slashed by cut.
Mine own approach to pull and sync:
- https://github.com/andry81/gitcmd (implementation, not interactive usage)
git_pull_remote*.sh
git_sync_remotes.sh
- https://github.com/andry81/gituserbin (wrappers, interactive usage)
pull-remote*.*
sync-remotes.*
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Confirmed. That is useless. Any working alternative?