Коли Git оновлює список віддалених гілок?


496

Використання git branch --allпоказує всі віддалені та локальні відділення. Коли Git оновлює цей список?

На потягу / натиску? А як оновити його за допомогою Git Bash ?


5
Як зауваження, тут git ls-remoteможе бути цікаво.
jthill

Відповіді:


1221

Щоб оновити локальний список віддалених відділень:

git remote update origin --prune

Показати всі локальні та віддалені гілки, про які (місцевий) Git знає

git branch -a

143
git remote update origin --pruneце те, що я шукав thx
WonderLand

6
Про різницю між цією відповіддю, яка використовує git remote update, та прийнятою відповіддю, яку використовує git fetch, дивіться тут
The Red Pea

6
це правильна відповідь. git fetchне видалив мій локальний кеш віддалених гілок. Тільки --pruneвдалося все це почистити.
Феліпе Альварес

23
Ви можете зробити це git автоматично зробити цеgit config remote.origin.prune true
kjhf

8
git remote prune originмає той же ефект, і ви набираєте менше.
Двін

27

Я вірю, що якщо ти біжиш git branch --all з Bash, то список віддалених та локальних гілок, який ви бачите, відображатиме те, про що знає ваш місцевий Git під час виконання команди. Оскільки ваш Git завжди в курсі місцевих гілок у вашій системі, список місцевих гілок завжди буде точним.

Однак для віддалених відділень це не обов'язково. Ваш місцевий Git знає лише про віддалені гілки, які він бачив за останній збір (або потяг). Тож можливо, ви можете запустити git branch --allі не побачити нову віддалену гілку, яка з’явилася після останнього разу, коли ви виймали або витягували.

Щоб переконатися, що ваш локальний та віддалений список філій, ви можете зробити git fetch перед запуском git branch --all.

Для отримання додаткової інформації "віддалені" гілки, які з'являються при запуску git branch --all, зовсім не є віддаленими; вони насправді місцеві. Наприклад, припустимо, що на пульті є гілка, featureяку ви принаймні один раз потягнули у свій локальний Git. Ви побачите, origin/featureяк зазначено, як галузь під час запуску git branch --all. Але ця філія - ​​це фактично місцева гітля Git. Після цього git fetch originця гілка відстеження оновлюється будь-якими новими змінами віддалено. Ось чому ваша місцева держава може стати несвіжими, оскільки можуть з’явитися нові віддалені гілки, або ваші гілки відстеження можуть стати несвіжими.


4
Так, git fetchзробив це.
BendEg

14
Зауваження для користувачів, які користуються спонсором: Якщо ви вважаєте, що правильна інформація з цілеспрямованим поясненням заслуговує на опромінення, тоді принаймні поговоріть і залиште коментар.
Тім Бігелейзен

3
git fetch не працює для мене, потрібно додати --prune . Btw, я не знижуюся;)
Deqing

3
git fetchне видаляє видалені віддалені гілки. Мабуть, тому деякі люди прихильнилися
Jérôme MEVEL

@ JérômeMEVEL Для мене диво, що прийнята відповідь нараховує 1000 відгуків. Це божевільно ... хотілося б, щоб у мене було таке викриття :-)
Тім Бігелейзен

24

ОП не просив очищення для всіх віддалених, скоріше для всіх гілок віддаленого за замовчуванням.

Отже git fetch --prune, що слід використовувати.

Налаштування git config remote.origin.prune trueробить --pruneавтоматичним. У цьому випадку якраз git fetchтакож буде обрізати застарілі віддалені гілки з локальної копії. Дивіться також Автоматичне чорнослив за допомогою Git fetch або pull .

Зауважте, що це не прибирає локальні гілки, які вже не відстежують віддалену гілку. Подивитися Як обрізати локальні гілки відстеження, які вже не існують на віддаленому для цього.


Щоб зробити його трохи коротшимgit fetch -p
Майкл Уорнер

2

Використовуйте git fetchдля отримання всіх останніх створених гілок.


1
git fetchнічого не змінив для мене з git 2.17.1. Яку версію та параметри ви використовували?
Вказівні вуха

2
Вам потрібно --pruneабо git config remote.NAME.prune trueдля того, щоб вирішити питання щодо ОП
Олівер

-1

Якщо ви використовуєте Eclipse і хочете бачити нові гілки з висхідного потоку;

У перспективі Git клацніть правою кнопкою миші на сховищі Git, а потім виберіть "Вилучити з висхідного потоку". Це отримує нові віддалені гілки.


-8

Якщо ви використовуєте Eclipse,

  1. Відкрийте "Git Repositories"
  2. Знайдіть свій сховище.
  3. Відкрийте "Відділення", а потім "Віддалене відстеження".

Git

Усі вони повинні бути там. Клацніть правою кнопкою миші та "замовлення".


Як це відповідає на питання? - "Коли Git оновлює список віддалених гілок?"
Пітер Мортенсен

Коли я хотів освіжити свої місцеві гілки в затемненні, я погуглив, і це взяло мене сюди. Цей пост фактично допоміг небагатьом людям, оскільки він мав кілька результатів. Можливо, я неправильно зрозумів питання. Для мене Eclipse IS Git (інтерфейс до нього). Вибачте за те, що образили всіх!
markthegrea
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.