Метод, на который вы ссылаетесь, предназначен для другого варианта использования. не определяет именованный пульт таким же образом, как
git remote add <name> <url>
делает. Скорее, он отображает конкретную локальную ветвь на определенную ветвь удаленного узла (который обычно не должен отображаться как именованный удаленный).
Итак, когда вы говорите, что ваше удаленное имя stash
... это не совсем применимо. Удаленный доступ определяется таким образом, только у kinda-sorta есть «удаленное имя». У него есть URL, и, возможно, имя удаленной ветви и имя локальной ветви; и при извлечении вы можете использовать имя локальной ветви , например , удаленное имя для извлечения удаленной ветви в локальную ветвь.
(Кстати, stash
не подходит для удаленного использования в любом случае; stash
- это специфическая локальная структура данных в git.)
Таким образом, когда вы определяете доступ таким образом, в качестве имени файла используется имя локальной ветви, а файл содержит URL-адрес (и имя удаленной ветви, если это не просто значение по умолчанию master
).
Так, например, предположим, что вы разветвили репо, но вы хотите периодически извлекать обновления из ветки pub
исходного репо (потому что они используют какое-то странное соглашение, когда это то, что вам нужно). Вы не заботитесь о других его ветвях (по крайней мере, большую часть времени) и не хотите отображать его как удаленный для общего использования, но вы хотите сокращение для извлечения изменений одной ветки в одну локальную ветвь, где вы размещаете интеграций.
Вы можете создать файл
.git/branches/upstream
содержащий текст
http://url.of.original/repo#pub
Теперь вы можете использовать upstream
как удаленное имя;
git fetch upstream
получит изменения из ветви pub
по этому URL и обновит ветку upstream
соответствующим образом.
Обратите внимание, что в отличие от обычного удаленного определения, не извлекает изменения в ссылку на удаленное отслеживание, из которой можно выбрать обновление локальной ветви. Выборка непосредственно нацелена на локальную ветвь, и если вы локально перемещаете локальную ветвь, вы настраиваете себя на все виды головной боли.
Оборачиваясь назад, если вы хотите, чтобы к пульту обращались с использованием имени stash
(что я заметил, это плохая идея), вам, следовательно, придется также назвать локальную ветвь stash
- и это еще хуже потому что в структуре данных stash
имеется ссылка под названием stash
, а вероятность конфликта и путаницы очень высока.
В каждом случае, о котором я могу подумать, имеет больше смысла конфигурировать удаленное устройство, используя git config
, а затем настраивать пользовательские спецификации ссылок для любых "специальных" правил отображения ветвей. Я не уверен, что история этого альтернативного метода определения удаленного доступа - возможно, он старый и раньше считался полезным, или, может быть, он новый, и объяснение того, почему он был добавлен, где-то там, где я не видел. Но в любом случае, просто потому, что вы можете, не обязательно означает, что вы должны. Типичный метод настройки удаленного устройства может соответствовать большинству не всех сценариев, и тогда любой, кто смотрит на него, может понять, как он работает и почему.