Я думаю, що це позначення косої риси, мабуть, найкраще зрозуміти, заглянувши всередину вашої .git
папки.
Наприклад, ось дещо скорочене дерево мого .git для вихідної бази LibreOffice.
Для Linux sudo apt-get install tree
це корисно для перегляду.
У Windows я думаю, що tree
команда все ще може працювати.
Прокрутіть униз і подивіться реф. (Також "посилання") внизу:
$ tree
.
├── branches
├── config
├── description
├── FETCH_HEAD
├── gitk.cache
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
...
├── index
├── info
│ └── exclude
├── logs
│ ├── HEAD
│ └── refs
│ ├── heads
│ │ ├── master
│ │ └── remotes
│ │ └── origin
│ └── remotes
│ └── origin
│ ├── distro
│ │ ├── cib
│ │ │ └── libreoffice-6-0
│ │ ├── collabora
│ │ │ └── cp-6.0
│ │ └── lhm
│ │ └── libreoffice-5-2+backports
│ ├── HEAD
│ ├── libreoffice-6-2
│ ├── master
│ └── private
│ └── mst
│ └── sw_redlinehide_4a
├── objects
│ ├── info
│ └── pack
│ ├── pack-b80087dc57e2b3315f449ca0f1aaa91987bf0c5e.idx
│ ├── pack-b80087dc57e2b3315f449ca0f1aaa91987bf0c5e.pack
│ ├── pack-eb4e6808029e712d8d9c2671accbbd98aaeb9a04.idx
│ └── pack-eb4e6808029e712d8d9c2671accbbd98aaeb9a04.pack
├── ORIG_HEAD
├── packed-refs
└── refs
├── heads
│ ├── master
│ └── remotes
│ └── origin
├── remotes
│ └── origin
│ ├── distro
│ │ ├── cib
│ │ │ └── libreoffice-6-0
│ │ ├── collabora
│ │ │ └── cp-6.0
│ │ └── lhm
│ │ └── libreoffice-5-2+backports
│ ├── HEAD
│ ├── libreoffice-6-2
│ ├── master
│ └── private
│ └── mst
│ └── sw_redlinehide_4a
└── tags
└── libreoffice-6-2-branch-point
32 directories, 45 files
Це може бути менш заплутано, якби воно було викладено так, але це не так:
repositories (i.e. independent trees)
├──local
│ └──master
│
└──origin1
│ └──master
└──origin2
└──master
У нас є три основні типи посилань: голови , пульти та теги .
.git / refs / heads тримає нашого місцевого майстра .
.git / посилання / пультів ДУ може містити кілька пультів дистанційного керування, хоча на даний момент ми маємо тільки походження в ньому.
.git / refs / tags (обговорюється в іншому місці).
Походження, таким чином, є нашим єдиним та віддаленим. Він має походження / головного .
Ми виявляємо, що у нас є 2 ГОЛОВИ (вказівники на поточні гілки), одна локальна та одна віддалена:
$ cat .git/HEAD # local: HEAD -> master
ref: refs/heads/master
$ cat .git/refs/remotes/origin/HEAD # remote origin: HEAD -> master
ref: refs/remotes/origin/master
Якщо ви перелічите свої філії :
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/aoo/aw080
remotes/origin/aoo/trunk
remotes/origin/distro/capgemini/cg-4.1
remotes/origin/distro/cib/libreoffice-5-0
remotes/origin/distro/cib/libreoffice-5-1
remotes/origin/distro/cib/libreoffice-5-2
...
- Перша перелічена ( ведуча ) гілка є єдиною, яка не є віддаленою. Тож у цьому випадку ми маємо одне місцеве відділення. Ось з чого ми почнемо свою власну роботу, для власних нових відділень та подальших зобов’язань.
Далі у вас може бути багато відділень віддаленого відстеження, і ми тут. Ви знаєте, що це віддалені гілки відстеження, оскільки вони мають префікс " Remotes / ". Тут показано віддалене походження.
Отже, другий рядок є поточним вказівником гілки origin . Віддалення / походження: HEAD --точки до -> master. Це показує, що у віддаленому сховищі поточна гілка є їхньою гілкою з ім'ям master (не плутати її з нашою локальною гілкою з іменем master ).
Решта гілок не знайдено у вашому .git / refs / tree, а скоріше ви їх знайдете .git/packed-refs
.
Коли ми git fetch, ми завантажуємо зміни з віддаленого сховища, у наше сховище віддаленого відстеження.
Коли ми git злиття, ми об'єднуємо зміни цього локального сховища віддаленого відстеження у нашу працюючу локальну філію або гілки, в даному випадку в нашу головну гілку.
(Коли ми git pull, ми робимо обидва ці кроки в одній операції.)
Також цікаво відзначити, що ці локальні та віддалені UUID- майстри для головного в даний час вказують на той самий вузол (він же "фіксувати"):
$ cat refs/heads/master # local master
1ca409292272632f443733450313de5a82c54a9c
$ cat refs/remotes/origin/master # remote origin master
1ca409292272632f443733450313de5a82c54a9c
Тож наш місцевий майстер вказує на те саме місце, що і майстер походження дистанційного керування:
[local] master = [remote] origin master
Нарешті, я думаю, що також корисно поглянути .git/packed-refs
$ cat packed-refs
# pack-refs with: peeled fully-peeled
3c1d4742e649fe9c8aed8c2817fe3e1f3364f298 refs/remotes/origin/aoo/aw080
e87c8b7922e9a73e0abb7f9a7a47c9ac3374a826 refs/remotes/origin/aoo/trunk
b70fdffb041c12f124dcc0822b61bf3450e53137 refs/remotes/origin/distro/capgemini/cg-4.1
5dbc3f1754809b9489faaf380b1a4bdbcfbb6205 refs/remotes/origin/distro/cib/libreoffice-5-0
cfdbc96ca47d68d6785fd21829a8d61f49d6e591 refs/remotes/origin/distro/cib/libreoffice-5-1
5189c8c47461ef09739086e55512fc6a10245273 refs/remotes/origin/distro/cib/libreoffice-5-2
3bee5917569ca8e6ee3b086458f5b1a917b88ca1 refs/remotes/origin/distro/cib/libreoffice-5-3
92fbe703f9ca480d3a2b8610d87e991c729edf77 refs/remotes/origin/distro/cib/libreoffice-5-4
05c0a5df66cc69d75280f05b804cf82f3387d42b refs/remotes/origin/distro/cib/libreoffice-6-0
7fe193e759b24b90852e6e327115b77114d7b119 refs/remotes/origin/distro/cib/libreoffice-6-1
8187f7aa413e7ef7b377eea2b057d336bf256867 refs/remotes/origin/distro/collabora/cd-5.3
7a6b608591e21ef61dc05cff9fc58da531035755 refs/remotes/origin/distro/collabora/cd-5.3-3.1
....
Без сумніву, це залишає більше питань, ніж відповідей, але я думаю, що це може почати допомагати вам відповідати на власні запитання про те, що робити.