Как сравнить ветку с заведомо неизвестным апстримом?
Как я могу сравнить локальную ветвь с ее удаленным восходящим потоком, если я не хочу иметь в виду, какая удаленная ветвь является его восходящим?
Другими словами, я хочу бросить origin/bar
во второй строке ниже:
git branch --set-upstream master origin/bar
git log origin/bar..
1 ответ
origin/bar
это просто удобная ссылка на верхнюю ревизию этой ветки в истории, которая обновляется, когда вы выбираете изменения из апстрима.
Если вам не безразлично полное содержимое этой ветки, что-то где-то должно иметь ссылку на нее (иначе это будет в конечном итоге сборщик мусора), и вам придется выяснить хэш ревизии в верхней части этой ветки.
Если вам не нужны обновленные изменения, вы можете использовать git tag
чтобы пометить вершину восходящей ветви в некоторой точке, а затем использовать тег для изменения изменений. Или вы можете создать локальную ветку сверху origin/bar
и использовать местную ветвь для сравнения. Или вы можете просто использовать git-хэш самой верхней ревизии origin/bar
,
Или вы можете поставить символическую ссылку refs/remotes/origin/bar -> .git/refs/foo
а затем сделать различий против foo
, Это на самом деле будет указывать на современные origin/bar
без вызова origin/...
Я не совсем уверен, зачем тебе это делать.