2011-11-19 35 views
6

Sonradan alma kancamı git (windows) olarak ayarlamaya çalışıyorum. İşte betik: benim yerel depo üzerinde git itme yaptığınızdaileti alma kancası - GIT_WORK_DIR: böyle bir dosya veya dizin yok

#!/bin/sh 
echo "post-receive hook" 
GIT_WORK_TREE=/d/test git checkout -f 

bu yankı mesajı görüyorsanız, komut dosyası düzgün olarak adlandırılır.

Ancak, kasa çalışmıyor! Konsol görünümünde bir hata var:

remote: fatal: Could not switch to '/d': No such file or directory 

Bu komutu Git Bash'e koyduğumda işe yarıyor! sözlerinden

+1

msysgit ile gelen bash yerine cygwin kullanıyor musunuz? Çünkü cygwin ile, yol '/ cygdrive/d/test' olacaktır. – VonC

+0

Hayır, Git'i Git Bash ile birlikte yalnızca PATH'ye gitmeden eklemiştim. Belki de PATH'a gitmeyi denemeliyim? – RobertM

+0

Ben 'PATH' meselesi olduğunu sanmıyorum ('' $ PATH' kontrol etmek için yankı '' olabilir). Belki de 'GIT_DIR' ayarlamayı deneyin. Ayrıca 'pwd' ve' ls/d'’yi de görüntüleyin. – VonC

cevap

2

:

GIT_WORK_TREE=/Volumes/D/test git checkout -f 

çalışır. Ancak

, OP RobertM yorumlar: Ben başka bir bilgisayardan itecek ne

? bu yol mevcut olmadığı benim windows makinede diğer klon var

farklı bir konudur ve bir tahrik adlandırma kuralıyla örneğin çözmek olabilir

: tek bir uzaktan repo ne olursa olsun yol ilişkilendirmek karar verebilir (Windows subst command ile belirli bir sürücü harfine (örneğin, veya başka bir yol)).

0

Ben mysysgit benim yerel iş istasyonundan için itmek bir web sunucusu üzerinde çalışan var ve şu post-alma komut dosyası kullan: Dosya bir UNIX olmama neydi başında beni Koçan

#!/bin/sh 
git --work-tree=/cygdrive/d/www --git-dir=/cygdrive/d/CodeRepositories/tempRepo.git checkout -f 

Biçim, değiştirmek için Notepad ++ kullanabilirsiniz. Not, SSH üzerinde itme yapmak için cygwin kullanıyorum, bu yüzden dizin adlarınızın değiştirilmesi gerekebilir.

İlgili konular