Трудно1 "отменить" git fetch
, но никогда2 нет причин необходимости отменять git fetch
.
Помните, что git fetch
вызывает удаленный сервер, получает список сопоставлений имени ветки с SHA-1, переносит коммиты и другие объекты, необходимые для их хранения в вашем репозитории, а затем обновляет ветки удаленного отслеживания, чтобы что они указывают на текущие (на момент, когда вы только что звонили) подсказки ветки пульта. Это не повлияет ни на один из ваших файлов рабочего дерева, и если вы снова запустите git fetch
завтра, любая работа, сделанная сегодня, может быть пропущена завтра. Если вам действительно удастся отменить fetch
, то завтрашний запуск должен будет повторить работу, сделанную сегодня, так что это чистый убыток: вы только что потратили некоторые усилия, чтобы вашему мерзавцу пришлось принести больше кода по сети завтра.
Тем не менее, время для сносок. :-)
1Это не так уж сложно, если у вас есть удаленные журналы ссылок (что у вас, вероятно, есть): просто используйте удаленные журналы ссылок, чтобы найти ветки удаленного отслеживания, обновленные в самой последней выборке — это та же информация может по-прежнему быть доступна в файле FETCH_HEAD
, а затем использовать git update-ref
, чтобы вернуть эти ссылки к их предыдущим записям журнала ссылок. Но это по-прежнему оставит извлеченные объекты в вашем репозитории, поэтому, чтобы действительно очистить их, вы должны также удалить промежуточные записи журнала ссылок, а затем запустить git gc --prune=now
, что требует большой осторожности и отбросит все объекты без ссылок, а не только те, которые были перенесены самой последней fetch
.
2Я думаю, можно возразить, что причиной для этого может быть "недостаток места на диске", особенно если большой объект был случайно перемещен на удаленный компьютер и будет удален с удаленного компьютера к следующему fetch
. Однако работа в файловой системе, в которой не хватает места, в целом сложна, и я не уверен, что хотел бы делать здесь что-то еще, кроме как переместить весь репозиторий в другое место (куда-нибудь без проблем с дисковым пространством).
person
torek
schedule
24.02.2016
.git
, так зачем мне они там сидят, если я не хочу объединяться - person sreginogemoh   schedule 24.02.2016repo A
, но мне для этого нужна только одна ветка. Так что принесу только что привезенные вещи, которые мне совсем не нужны и никогда не понадобятся. - person sreginogemoh   schedule 24.02.2016git branch -r -d
. Вы по-прежнему будете хранить объекты в течение обычного срока хранения (по умолчанию 14 дней). Однако вы, вероятно, захотите настроить свою конфигурацию, чтобы в будущем выборка с одного и того же удаленного устройства забирала только определенные нужные ветки. - person torek   schedule 25.02.2016