1

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

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

4

1 回答 1

2

当然,很容易。

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

该消息是您希望出现在 reflog 中的任何内容。你可以省略它。

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

你当然要知道你在做什么。注意不要在那里丢弃任何重要的修订。

您也不能对已签出的分支执行此操作。避免通过执行签出任何分支可能是最有用的git checkout HEAD@{}。这将使特殊的 refHEAD直接存储提交 ID,您可以更新任何 ref,然后您可以返回git checkout任何您想要的内容。

于 2012-08-03T11:54:07.970 回答