2012-06-22 17 views
6

Czy w jednym poleceniu git można mieć git pull i git push?git pull i git push one one go

Składnia taka jak git pull & git push nie odpowiada mi całkowicie, ponieważ muszę dwukrotnie podać swoje dane uwierzytelniające na serwerze: w trakcie pobierania i pchania.

Zastanawiam się, czy istnieje jakieś obejście tego problemu? Sądzę, że tak powinno być, ponieważ dość często zdarza się, że deweloper ściąga zdalne pochodzenie przed popychaniem lokalnych zmian.

EDIT: Używam Windows 7/x64 msysgit-utf8 1.7.9

+1

Może to być niebezpieczne, jeśli występują konflikty scalania nie? –

+1

Co to jest protokół? są sposoby dostarczania referencji tylko raz na sesję – CharlesB

+3

Nie rób tego. Skonfiguruj uwierzytelnianie za pomocą klucza publicznego lub zmień protokół, abyś mógł. – wadesworld

Odpowiedz

4

Przede wszystkim, można skonfigurować plik _netrc, który będzie używany przez Git, tutaj związany problem: Git - How to use .netrc file on windows to save user and password następnie można skonfigurować alias dla polecenia:

git config alias.publish '!git pull && git push'` 

i rodzaj tylko: git publish

+0

Mogę dodać login do adresu URL repozytorium za pomocą symbolu @ jako separator. I mogę dodać moje hasło do '.git/config'. Ale nie chcę przechowywać moich haseł. Lubię otrzymywać prośby o podanie hasła. Ale tylko raz! – shytikov

+0

Wierzę, że to rozwiązanie '.netrc' nie będzie działać z połączeniem ssh ... – shytikov

+0

Nie musisz dodawać loginu i hasła do pliku .git/config. To zły sposób. Jeśli korzystasz z połączenia ssh, lepiej nie używać do tego kluczy publicznych. W przypadku połączenia https przy użyciu poświadczeń można użyć pliku _netrc w systemie Windows, należy zwrócić uwagę na podkreślenie w nazwie pliku zamiast kropki. – lisachenko

0

Polecam robi coś tylko szybki i brudny w tej sprawie. Być może nie jest to najskuteczniejszy sposób, ale po prostu utworzę skrypt basha w vimie za pomocą poleceń i uruchomię to, biorąc pod uwagę, jak proste są te polecenia. Następnie możesz otworzyć ten plik za każdym razem, gdy chcesz ciągnąć i pchać w tym samym czasie.

Wszystko, co musisz zrobić, to utworzyć plik, wstawić dwa wiersze poleceń, które chcesz napisać, i wpisać nazwę pliku w wierszu polecenia, kiedy chcesz je wykonać.

Ponownie, nie jest to najbardziej skuteczny sposób, ale szybka naprawa.

+0

Nie naprawia sytuacji z podwójnym uwierzytelnianiem ... I to jest problem. Nie przeszkadza mi wpisanie 'git pull & git push'. Nie chcę wpisywać mojego hasła dwa razy, ponieważ uważam, że powinna to być optymalizacja. Ale jeszcze jej nie znalazłem ... – shytikov

0

Lepiej używać SSH, ale jeśli nie można korzystać z SSH, zawsze można użyć w Sklepie Windows poświadczenia zapisywać hasła, dzięki czemu nie trzeba wypełnić go dwukrotnie:

git config --global credential.helper wincred 

Źródło: Git documentation