Próbuję uruchomić git z innego katalogu niż ja. Więc na przykład, jeśli jestem w:
cd /home/domain/
git status << runs perfect ie
# On branch master
# Your branch is ahead of 'origin/master' by 6 commits.
Więc teraz chcę uruchomić to polecenie z innego katalogu przy użyciu --git-dir
opcji.
Powiedzmy, że jestem w root/
środku i wypróbuj to:
git --git-dir="/home/domain/" status
## Error
fatal: Not a git repository: '/home/domain/'
Próbowałem również dołączyć .git
folder tj
git --git-dir="/home/domain/.git/" status
Ale wygląda na to, że próbuje uruchomić git z katalogu głównego, tzn. Usuwa wszystko z mojego folderu domeny i dodaje wszystko do katalogu głównego.
Mam nadzieję, że ktoś może doradzić, co robię źle.
--git-dir
i--work-tree
dla prostego polecenia: zobacz moją odpowiedź poniżejOdpowiedzi:
Musisz również zdefiniować działający katalog. Mylące wiem, ale to kwestia elastyczności.
Możesz przeczytać więcej tutaj
źródło
--git-dir
nie został określony, sprawdziłby, czy/mycode/.git
istnieje i użyłby tego przed zgłoszeniem błędu.git --git-dir=~/src/s3cmd/.git --work-tree=~/src/s3cmd pull
nie działał, alegit --git-dir=/home/username/src/s3cmd/.git --work-tree=/home/username/src/s3cmd pull
takgit --git-dir="$HOME/foo/.git" --work-tree="$HOME/foo" status
Począwszy od gita 1.8.5 (który powinien być dostępny w przyszłym tygodniu), będzie to jeszcze prostsze:
Nie trzeba ustawić
--git-dir
i--work-tree
już!Zobacz commit 44e1e4 autorstwa Nazri Ramliy :
źródło
git status -C <path>
Nie zadziała!)Na podstawie powyższego komentarza wydaje się, że nadal masz problem:
Wygląda na to, że masz zamiar to uruchomić
crontab
. Lepiej skorzystajcd
z przejścia do katalogu roboczego. Na przykład:Spowoduje to tymczasowe (w podpowłoce, co robią nawiasy) zmianę bieżącego katalogu na
/home/domain
, a następnie uruchomieniegit pull origin master
. Po zakończeniu polecenia bieżący katalog pozostaje taki, jaki był przed poleceniem.źródło
W przypadku Git 2.26 (Q1 2020) dokumentacja jest jaśniejsza.
Jednym ze skutków określenia, gdzie
GIT_DIR
jest (za pomocą zmiennej środowiskowej lub opcji „git --git-dir=<where> cmd
”), jest wyłączenie wykrywania repozytorium .Zostało to nieco bardziej obciążone w dokumentacji, ponieważ nowi użytkownicy często się mylą.
Zobacz commit d82ad54 (30 stycznia 2020 r.), Autor: Heba Waly (
HebaWaly
) .(Połączone przez Junio C Hamano -
gitster
- w commit 17e4a1b , 12 lutego 2020)Więc dokumentacja
git --git-dir
obejmuje obecnie:źródło