/ / Как мога да проверя дали конкретно дистанционно хранилище съдържа отделен клон? - git, разклоняване и сливане

Как мога да проверя дали конкретно дистанционно хранилище съдържа отделен клон? - git, разклоняване и сливане

Искам да проверя дали клон на отдалечено хранилище за Git съдържа слян клон с конкретно име. Например:

  • Има отдалечено хранилище в www.example.com:/repo.git.
  • В това хранилище има клон, наречен myBranch.
  • Искам да проверя дали даден клон от подобен тип myFeatureBranch е обединена myBranch.

Ако клонирах хранилището и касата myBranch, Мога да направя git show-ref --verify refs/heads/myFeatureBranch, но това не е това, което искам да направя. Трябва да го направя с отдалечен клон без клониране.

Вече играх наоколо git ls-remote --heads www.example.com:/repo.git, но единственото, което получавам, е списък с отдалечени глави. Някой го е направил преди?

Отговори:

1 за отговор № 1

Git работи локално по дизайн

Разпределената природа на Гит е основно проектирана около няколко основни понятия:

  1. Повечето операции са местни, с няколко малки изключения тласък и LS-отдалечени.
  2. Историята е изчислява от ангажиране на обекти.

Това означава, че изследването на историята е локална операция и не може да се извършва на отдалечено хранилище.

Отдалечени референции

Най- Git-LS-отдалечен командата е полезна при търсене нагоре за референции, но не за история. Например:

git ls-remote origin | egrep "some_branch_name|merge"

ще отпечата отзивите на отдалеченото устройство, съответстващо на името на клона, който търсите, или (в случая на GitHub) аргументите, създадени от обединени заявки за изтегляне като:

381a77fd72ea594cfce5c82c845ad3d10bb87d71        refs/pull/99/merge

Най- Git-LS-отдалечен командата показва refs налични в отдалечено устройствохранилище заедно с идентификационните номера на свързаните комисии. Ако обаче искате да разберете кой клон съдържа даден ангажимент, трябва да имате достъп до пълната история; което изисква да имате местно копие.

Намиране на клонове, съдържащи ангажимент за обединяване

Най-добрият начин, по който знам да се занимавам с този проблем, е следният:

  1. Изтеглете всички клони с git fetch --all origin.
  2. Намерете ангажиментите за сливане, които искате git log --merges.
  3. Намерете съдържащите се клонове с git branch --all --contains <commit>.

Това ще ви даде списък с клонове, които съдържат посочения ангажимент.


1 за отговор № 2

Не можете да изпълнявате команди на устройството за дистанционно управление.Това е просто механизъм за синхронизиране.Ще трябва да клонирате, за да изпълнявате редовните команди.

Може да искате да погледнете нагоре git branch -a --contains