是否可以重置当前未签出的分支?
我想创建一个将执行的 cron 脚本,git svn fetch
然后用新的更改更新跟踪 svn 远程分支的所有本地分支。
当然,很容易。
git update-ref -m "message" refs/heads/whatever new-value old-value
该消息是您希望出现在 reflog 中的任何内容。你可以省略它。
这old-value
避免竞争条件。它会在更新之前检查 ref 是否仍然具有该值,因此如果在您处理它时另一个脚本对其进行了更新,则操作将失败。如果您没有竞争条件的风险,则不必指定它。
你当然要知道你在做什么。注意不要在那里丢弃任何重要的修订。
您也不能对已签出的分支执行此操作。避免通过执行签出任何分支可能是最有用的git checkout HEAD@{}
。这将使特殊的 refHEAD
直接存储提交 ID,您可以更新任何 ref,然后您可以返回git checkout
任何您想要的内容。