← man/dev_and_programming
git-upload-pack — man git-upload-pack — 80×24
ugur@toprak:~/man/dev_and_programming$man git-upload-pack
Bölüm 1 Geliştirme & Programlama

git-upload-pack

Paketlenmiş nesneleri git-fetch-pack komutuna geri gönder

Sözdizimi

       git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc] \
			 [--advertise-refs] <dizin>

Açıklama

git fetch-pack tarafından çağrılır, karşı tarafın hangi nesneleri eksik olduğunu öğrenir ve bunları paketledikten sonra gönderir.

Bu komut genellikle son kullanıcı tarafından doğrudan çağrılmaz. Protokolün kullanıcı arayüzü git fetch-pack tarafındadır ve bu program çifti, uzak bir depodan güncellemeleri çekmek (pull) için kullanılmak üzere tasarlanmıştır. İtme (push) işlemleri için git send-pack kılavuzuna bakın.

Seçenekler

--[no-]strict Eğer <dizin> bir Git dizini değilse, <dizin>/.git/ yolunu denemeyin.

--timeout= <n> saniye boyunca hareketsiz kalındığında aktarımı yarıda keser.

--stateless-rpc Standart girdi (stdin) ve standart çıktı (stdout) ile yalnızca tek bir okuma-yazma döngüsü gerçekleştirir. Bu, bir programın isteği okuyup bir yanıt yazdıktan sonra çıkış yapması gereken HTTP POST istek işleme modeline uygundur.

--http-backend-info-refs git-http-backend(1) tarafından $GIT_URL/info/refs?service=git-upload-pack isteklerine hizmet vermek için kullanılır. gitprotocol-http(5) kılavuzundaki "Smart Clients" ve gitprotocol-v2(5) belgelendirmesindeki "HTTP Transport" bölümlerine bakın. Ayrıca git-receive-pack(1) tarafından da anlaşılır.

Senkronize edilecek kaynak depo.

Çevre Değişkenleri

GIT_PROTOCOL Kablo protokolünün (wire protocol) el sıkışması (handshaking) için kullanılan dahili değişken. Sunucu yöneticilerinin, bu değişkenin geçirilmesine izin vermek için bazı taşıma protokollerini yapılandırması gerekebilir. git(1) kılavuzundaki tartışmaya bakın.

GIT_NO_LAZY_FETCH Kısmi bir depodan (yani kendisi de --filter ile klonlanmış bir depodan) klonlama veya çekme (fetch) yaparken, sunucu tarafındaki upload-pack isteği tamamlamak için kendi üst kaynağından (upstream) ekstra nesneler çekmek zorunda kalabilir. Varsayılan olarak upload-pack böyle bir tembel çekme (lazy fetch) işlemini gerçekleştirmeyi reddeder; çünkü git fetch, kaynak deponun yapılandırma ve kancalarında (hooks) belirtilen rastgele komutları çalıştırabilir (ve upload-pack, güvenilmeyen .git dizinlerinde bile çalıştırılmasının güvenli olması için çabalar).

Bu durum, upload-pack'in dahili olarak GIT_NO_LAZY_FETCH değişkenini 1 yapmasıyla uygulanır. Bunu geçersiz kılmak istiyorsanız (kısmi bir kopyadan çekim yaptığınız ve buna kesinlikle güvendiğiniz için), GIT_NO_LAZY_FETCH değerini açıkça 0 olarak ayarlayabilirsiniz.

Güvenlik

Çoğu Git komutu güvenilmeyen bir .git dizininde çalıştırılmamalıdır (git(1) içindeki SECURITY bölümüne bakın). upload-pack, hizmet verdiği depodan gelebilecek tehlikeli yapılandırma seçeneklerinden veya kancalardan kaçınmaya çalışır; bu da güvenilmeyen bir dizini klonlamayı ve elde edilen kopya (clone) üzerinde komutlar çalıştırmayı güvenli hale getirir.

Ek bir güvenlik düzeyi için, upload-pack'i farklı bir kullanıcı olarak çalıştırabilirsiniz. Ayrıntılar platforma bağlı olacaktır, ancak many sistemlerde şunu çalıştırabilirsiniz:

git clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...

Ayrıca Bakınız

gitnamespaces(7)

Git

git(1) paketinin bir parçasıdır

Git 2.50.1.428.g0e8243 2025-07-22 GIT-UPLOAD-PACK(1)