Bence bu git eğik çizgi yazısı muhtemelen en iyi .git
klasörünüze bakarak anlaşılır .
Örneğin, burada LibreOffice kaynak tabanı için .gitimin kısaltılmış ağacı var.
Gelen Linux sudo apt-get install tree
bu görüntülemek için yararlıdır.
In Windows'un bence tree
komut çalışmaları hala bırakabilirim.
Sayfayı aşağı kaydırın ve en alttaki referanslara ('referanslar') bakın:
$ 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
Bu şekilde düzenlenmişse daha az kafa karıştırıcı olabilirdi, ama değildi:
repositories (i.e. independent trees)
├──local
│ └──master
│
└──origin1
│ └──master
└──origin2
└──master
Üç temel referans türümüz vardır : kafalar , uzaktan kumandalar ve etiketler .
.git / refs / heads yerel yöneticimizi elinde tutar .
.git / ref / uzaktan kumanda anda sadece olmasına rağmen, uzaktan kumanda bir sayıda tutabilir kökeni onun içinde.
.git / refs / tags (başka yerlerde tartışılır).
köken dolayısıyla sadece uzaktan bizim bir ve olduğunu. Bu tutar köken / ustası .
Bir tane yerel ve bir uzaktan kumanda olmak üzere 2 KAFA (mevcut dallara işaretçiler) olduğunu görüyoruz :
$ 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
Şubelerinizi listelerseniz :
$ 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
...
- Listelenen ilk dal ( ana ), uzak olmayan tek daldır . Yani bu durumda bir yerel şubemiz var. Burası, kendi yeni şubelerimiz ve müteakip taahhütler için kendi çalışmalarımızdan başlayacağımız yerdir.
Sonra, birçok uzaktan izleme şubeniz olabilir ve burada yapıyoruz. Bunların uzaktan izleme dalları olduğunu biliyorsunuz çünkü ' uzaktan kumandalar ' ön ekine sahipler . Burada gösterilenler orijinli uzaktan kumanda içindir.
İkinci satır, başlangıç noktasının geçerli dal işaretçisidir. Uzaktan kumandalar / kökeni: HEAD - - master'a işaret eder. Bu, uzak depoda, geçerli dalın master adlı kendi dalı olduğunu gösterir ( master adlı yerel şubemizle karıştırılmamalıdır ).
Kalan dallar .git / refs / ağacınızda bulunmaz, aksine onları bulabilirsiniz .git/packed-refs
.
Biz ne zaman getir Git bizim uzaktan izleme depoya, uzaktan deposundan değişiklikleri indirmek.
Biz ne zaman birleştirme git'e bizim master dalında bu durumda, bizim çalışma yerel şube veya şubeler içine bu yerel, uzak izleme deposundaki değişiklikleri birleştirmek.
( Git tuşuna bastığımızda , bu iki adımı da tek bir işlemde yaparız.)
Master için bu yerel ve uzak UUID'lerin şu anda aynı düğüme işaret ettiğini de belirtmek ilginçtir :
$ cat refs/heads/master # local master
1ca409292272632f443733450313de5a82c54a9c
$ cat refs/remotes/origin/master # remote origin master
1ca409292272632f443733450313de5a82c54a9c
Böylece yerel yöneticimiz uzaktan kumandanın başlangıç ustasıyla aynı yere işaret ediyor:
[local] master = [remote] origin master
Son olarak, bence de .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
....
Kuşkusuz bu cevaplardan daha fazla soru bırakıyor, ancak bence ne olduğu hakkında kendi sorularınızı cevaplamanıza yardımcı olabilir.