【发布时间】:2021-06-11 20:02:13
【问题描述】:
我想将多个分支重置为其原始版本。所以,
git fetch --all
for b in master work; do
git switch $b; git reset --hard origin/$b
done
但更简单?我考虑过删除所有分支以便重新创建它们,但是必须签出一个并且会出错。
编辑:场景是origin经常重写多个分支而不受惩罚。下面的答案也让我想到了将各种状态保存到备份参考 - 这是一个很好的奖励。
【问题讨论】:
-
在什么意义上更简单?
-
如果其他分支的名称与远程的名称匹配,您可以删除所有其他分支。当您尝试
git checkout example时,将从origin/example创建一个新的。 -
你到底想做什么?如果只是将本地分支重置为相应的“原始”状态,我想删除确实有上游对应的分支会更容易。
-
删除并重新创建,以便“以防万一”存在本地副本。我已经考虑过了,但它仍然是 2 * N 个命令,加上其中一个分支将被检出,并且需要更多命令来处理
-
这里的
why没有意义,无论它们是否与本地分支提交匹配,您都已经拥有远程引用。您在这里考虑的根本问题是什么?
标签: git git-branch git-reset