już widziany:Uruchamiaj polecenia git na pilocie?
- How to run GIT commands on remote repository - "SSH do serwera" lub "
git fetch
;gitk --all
" - Run git commands on remote working tree (GIT_WORK_TREE=/path) - odpowiedź jest o
git push --tags
- How to "git show" on a remote repo? - „Use git pobrać dostać pilota historię, a następnie pobierz plik z lokalnego magazynu obiektów. "
- How to run git command remotely? - „
ssh [email protected] "cd my/repo/path && git show"
” - How can I manually run the hook post-receive on git? „Hak jest wykonywalny skrypt można wykonać go z linii poleceń, jeśli trzeba uruchomić go ręcznie, choć konstruowania oczekiwany stdin inuput jest trochę uciążliwe jeśli repo. ma więcej niż jedną głowę (czyli używasz gałęzi). "
- Detecting changes to remote branch - „Nie monitoruj plików w wewnętrzne funkcjonowanie git ręcznie Użyj git, by sprawdzić, co dla Ciebie w tym przypadku
git rev-parse --verify origin/master
pokaże SHA z lokalnej kopii pochodzenia/Master igit ls-remote origin master
uzyskać.. SHA od pilota. " - Commit history on remote repository - "
git log remotename/branchname
- Nie można połączyć się bezpośrednio z serwerem, aby sprawdzić tam dziennik, wystarczy pobrać stan serwera za pomocągit fetch
, a następnie lokalnie zobaczyć dziennik zdalnych oddziałów."
Sądząc po tym, co chcę zrobić, muszę zalogować się przez ssh
i uruchomić skrypt na zdalnym serwerze; ale miałem nadzieję na bardziej zintegrowane rozwiązanie, więc pozwól mi wyjaśnić, co chcę zrobić.
Mam zdalne repo, które jest git-svn; następnie mam repozytorium lokalnego git-only, które jest klonem pilota. Tak więc lokalny ma odniesienie do zdalnego adresu URL w remote.origin.url
(widziana poprzez git config --list
).
Co chcę zrobić, to uruchomić równowartość git svn log
(być może z jakiegoś post-processing) na pilocie, ale z rozmowy zainicjowanej z lokalny maszyny/repo - i uzyskać wyniki, ponownie na lokalna maszyna/repo. Oczywiście, git-svn
może nawet nie zostać zainstalowany na komputerze lokalnym, co oznacza, że tylko pilot będzie w stanie zrozumieć takie polecenie.
Byłbym gotowy do zakodowania haka do zdalnego repo - ale o ile widzę, haki mogą działać tylko przy określonych zdarzeniach (tj. pull
, update
...) - nie można tak naprawdę nazwać ich arbitralnie: Pamiętam, że kiedyś opracowałem skrypt post-update
; i do debugowania, musiałem ustawić go tak, aby zawsze zwracał błąd, a następnie "naciskał" na "fałszywe" zatwierdzenie, które uruchamiało skrypt, a po otrzymaniu błędu, cofnął ponowne - Oczywiście nie tak wyobrażam sobie, że powinien działać zdalny skrypt.
Inną rzeczą, która może być możliwa, jest napisanie aliasu dla lokalnego repo, które następnie wywołuje SSH w odniesieniu do remote.origin.url
- może to może sprawić, że działanie git svn log
będzie nieco łatwiejsze?
W końcu, to jest moje pytanie - jakie opcje mam uruchomić stosunkowo zwyczaj git
polecenia (jak git svn log
lub git
alias zdefiniowany zdalnie) na zdalnym repo, wykorzystując do największego możliwego już dane stopniu dostępne w lokalnym repozytorium (to znaczy, chcę uniknąć pisania skryptu bash
, z powtarzającymi się zakodowanymi na stałe ścieżkami/adresami URL, które będą wywoływać ssh
i robić wszystko, co konieczne na zdalnym) - prawdopodobnie w podobny sposób jak zdalny post-update
git
hak zwraca stdout do lokalnego wywołującego, z prefiksem "remote:"?
Dziękuję za to, @GregHewgill - również moje podejrzenie, dobrze, że zostało potwierdzone; choć miałem nadzieję, że mógł istnieć mechanizm wywoływania, na przykład, wywoływania zdalnie definiowanych aliasów git, co uczyniłoby to zadanie znacznie bardziej zintegrowanym git/łatwiejszym. Twoje zdrowie! – sdaau