是否可以重置当前未检出的分支?
我想创建一个执行git svn fetch
的cron脚本,然后使用新更改更新跟踪svn远程分支的所有本地分支。
答案 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
无论您想要什么。