git拉取远程所有分支代码到本地
2022-03-17 本文已影响0人
炫子_260f
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
为指定仓库设置多个远程地址
git remote set-url --add <name> <url>
示例
- 为
origin
添加一个链接git remote set-url --add origin https://github.com/tingtingtina/xxx.git
- 这时通过
git remote -v
查看信息origin
这个仓库下就有配有多个地址了,当git push
的时候(默认是origin
,也可指定<name>
)这个名下所有的远程仓库都会被更新。
$ git remote -v
origin http://git.xxx (fetch)
origin http://git.xxx (push)
origin https://github.com/tingtingtina/xxx.git (push)
改写历史,去除大文件
查看存储中的大文件
git rev-list --objects --all | grep -E `git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}' | sed ':a;N;$!ba;s/\n/|/g'`
或
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -15 | awk '{print$1}')"
eg
git rev-list --objects --all | grep e9e4f5bee25e0f3323f8d4a83505c25293018ad1
注意:下方命令中的 path/to/large/files
是大文件所在的路径,千万不要弄错!
git filter-branch --tree-filter 'rm -f path/to/large/files' --tag-name-filter cat -- --all
git push origin --tags --force
git push origin --all --force
出现异常
WARNING: git-filter-branch has a glut of gotchas generating mangled history
rewrites. Hit Ctrl-C before proceeding to abort, then use an
alternative filtering tool such as 'git filter-repo'
(https://github.com/newren/git-filter-repo/) instead. See the
filter-branch manual page for more details; to squelch this warning,
set FILTER_BRANCH_SQUELCH_WARNING=1.
Proceeding with filter-branch...
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
解决方法:
您已经执行了筛选分支操作。在过滤分支之后,Git保留对旧提交的引用,以防出现问题。
你可以在.git/refs/original/…中找到。或者删除该目录和其中的所有文件,或者使用-f标志强制git删除旧的引用。
git filter-branch -f \
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD