我经常至少有3个远程分支:master,staging和production.我有3个本地分支跟踪那些远程分支.
更新我所有的本地分支机构很繁琐:
git fetch --all
git rebase origin/master
git checkout staging
git rebase origin/staging
git checkout production
git rebase origin/production
Run Code Online (Sandbox Code Playgroud)
我很乐意能够做一个"git pull -all",但我无法让它发挥作用.它似乎执行"fetch --all",然后更新(快进或合并)当前工作分支,而不是其他本地分支.
我仍然卡在手动切换到每个本地分支和更新.
考虑到以下要求,在GitHub上创建git存储库的本地备份的最佳方法是什么?:
本地备份应该是一个简单的回购.
备份应包括所有分支.
应该很容易(逐步)更新备份.
基本上,我想要一个完美的镜子,可以轻松更新.就这样,命令
git clone --mirror git://github.com/...
Run Code Online (Sandbox Code Playgroud)
想到了,但据我所知,这不允许轻松更新(我必须删除并重新创建我的本地备份).另外,git clone的镜像选项似乎是最近的,我没有在我正在研究的一些系统上(它有稍微旧版本的git运行).
针对此类问题,您推荐的解决方案是什么?
有哪些工具可用于显示我的git repo的状态以及它们与遥控器相比前进/后退的程度?我想象这样的东西存在:
repo1 +2 <--> remote1
repo1 <--> remote1 +3
repo2 <--> remote +10
Run Code Online (Sandbox Code Playgroud)
第一行显示repo1提前2次提交,第二次显示remote2提前3次提交,第三次显示只有repo2的远程提前10次提交.
有时,git将自发地(在某些操作期间,但不是全部,"拉"或"克隆"操作)将存储库的所有远程分支复制到我的本地存储库中(甚至将它们全部设置为正确跟踪相应的远程分支) .是什么导致这个?有没有办法可以故意这样做?