git - 将本地 repo 的所有分支重置为与远程相同

标签 git github branch bfg-repo-cleaner

首先这是不同的,因为这是针对所有分支而不是一个分支。 (我发现的所有那些一次只为一个分支指定这个)

我在一个有大约 20-30 个分支的 repo 上工作(说来话长,我知道我知道我知道的坏习惯)

无论如何,我正在使用 git bfg cleaner 删除一些旧的提交,在使用它之后你需要删除并重新克隆代码或重置每个分支。

我知道如何设置分支使用

git fetch origin
git reset --hard origin/master

但是有没有一种方法可以用一个命令重置每个分支,或者我必须一次只重置一个分支?

我忽略了很多本地文件,我不想处理复制和重写。 (如 IDE 文件、计算机配置文件等...)

最佳答案

First this is different because this is for all branches not one

你可以使用一个脚本来遍历你的分支,然后在每个分支上做你想做的事:

# Loop on all the desired branches
for ref in $(git branch -a)
do
   # ... DO ANYTHING YOU NEED HERE
   # You have the $ref which stores the branch name
   # ex: remotes/origin/master
done

是否有更好的ans简单解决方案?

是的,只需再次克隆该项目,您将拥有与原始项目相同的内容。
这正是您为每个分支手动执行的操作。


注意:

您可以使用此命令一次获取所有数据:

# Fetch all remotes, branches and remove deledted content
git fetch --all --prune

关于git - 将本地 repo 的所有分支重置为与远程相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019381/

相关文章:

security - 协作者的 Github 私有(private)存储库设置访问权限

GitHub Enterprise 中 Markdown 文件中的图像

tfs - TFS 中的孤立分支

git - jgit 我怎样才能得到两个日期之间发生的所有提交

git upload 将静态文件更改为 s3 并在推送时更新代码

linux - 无法为命令行 Git 切换 GitLab 帐户

git - 将子模块列表添加到 git

svn - 在 SVN 中及时跳转

Git 只允许从 development merge 到 master

master rebase 后 Git 分支看不到变化