В ответ на более ранний вопрос я пытаюсь обновить одну ссылку (например, release
), чтобы указать на другую ссылку (например, master
).
Если у меня есть ветки master
и release
, а master
— это одиночная фиксация перед release
, я бы хотел «перемотать вперед» release
до master
. Я пробую это:
r = Rugged::Repository.new(".") # assume we're on the `release` branch
r.references.update(r.head.resolve, r.branches['master'].target_id)
Это почти работает, но оставляет мое репо в таком состоянии:
On branch release
Your branch is ahead of 'origin/release' by 1 commit.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: file
Я пропустил шаг? Я ожидаю, что моя промежуточная площадка будет «чистой».
Я пробовал r.index.write_tree(r)
и r.index.write
, но без костей.
r.head = 'refs/heads/release'
, но это ничего не изменило. - person Max   schedule 23.01.2015r.reset(r.head.target, :hard)
, как указано в комментарии здесь кажется, я делаю то, что хочу. Это неправильный подход? - person Max   schedule 23.01.2015r.checkout_tree(r.branches["release"].target)
ничего не делает. - person Max   schedule 23.01.2015