git重置分支

时间:2012-08-03 10:01:10

标签: git git-svn

是否可以重置当前未检出的分支?

我想创建一个执行git svn fetch的cron脚本,然后使用新更改更新跟踪svn远程分支的所有本地分支。

1 个答案:

答案 0 :(得分:2)

当然,很容易。

git update-ref -m "message" refs/heads/whatever new-value old-value

该消息是您希望在reflog中显示的内容。你可以省略它。

old-value是为了避免竞争条件。它会在更新之前检查ref是否仍具有该值,因此如果另一个脚本在处理它时更新它,则操作将失败。如果您没有竞争条件的风险,则无需指定它。

你当然必须知道你在做什么。注意不要放弃任何重要的修改。

您还不得对签出的分支执行此操作。通过执行git checkout HEAD@{}来避免完全检查任何分支可能是最有用的。这将使特殊引用HEAD直接存储提交ID,您可以更新任何引用,然后您可以返回git checkout无论您想要什么。