Pracuję z 5 reposami, które sklonowałem w moim środowisku programistycznym. Kiedy chcę zaktualizować repo git, wchodzę do folderu/home/adrian/repo1/a zrobić:Utwórz skrypt powłoki, aby zaktualizować 3 repliki git.
mistrz git checkout git głównego pochodzenie ciągnąć
Ale wtedy, codziennie rano muszę zrobić to samo dla pozostałych 4 repozytoriów. To dość kłopotliwe.
Czy mogę umieścić to w skrypcie powłoki? Mam na myśli, jeśli napiszę te polecenia git w skrypcie powłoki i uruchomię to, czy będę w stanie zaktualizować wszystkie repozytorium?
myślałem o napisaniu czegoś takiego ...
cd repo1
git checkout master
git pull origin master
cd ..
cd repo2
git checkout master
git pull origin master
cd ..
(jestem na Linux)
Edit: Może to jest trudniejsze niż myślałem. Najczęściej kiedy robię "git pull origin master", dostaję erorracje takie jak "Twoje lokalne zmiany w .... zostaną nadpisane przez scalenie." Więc muszę wejść do odpowiedniego oddziału i schować rzeczy ..
Edit 2:
Co mam na myśli to robić, jeśli konflikt dzieje, zignorować i przejść do następnego repo
cd repo1
git checkout master
git pull origin master
(if there is conflict, ignore and go to the next line but dont stop here)
cd ..
cd repo2
git checkout master
git pull origin master
cd ..
ale nie wiem jak napisać rzecz w nawiasie.
co, jeśli masz niezatwierdzone zmiany w innym oddziale, gdy próbujesz zapłacić, a jeśli masz konflikty, gdy je wyciągasz? e nie jest niczym złym w zasadzie z tym, co chcesz zrobić, ale musisz zastanowić się, dlaczego twoje polecenia mogą zawieść (i co robić). – bengoesboom
Tak, musiałbym wziąć to pod uwagę. Napisałem to w Edit. Zasadniczo, jeśli pojawi się konflikt, należy go ukryć. Dzieje się tak dlatego, że każdej nocy przed wyjazdem i po zobowiązaniu się do wykonania moich czynności i sprawdzeniu wszystkiego, sprawdzam, czy wszystko jest czyste i aktualne, ale tak, w rzeczywistości wszystko może się zdarzyć rano, a może powinienem gdzieś ukryć ... – ado
Domyślam się, że chcesz utrzymywać śledzenie na odległość każdego dnia, używając 'git' w sposób' svn'. Naprawdę 'git' to dvs, możesz wykonać swoją pracę lokalnie i uruchomić' git pull --rebase' przed push. To pobierze źródło ze zdalnego i zastosuje na nim zmianę, może spowodować konflikt, ale można go rozwiązać. – dyng