2015-12-10 10 views
6

Załóżmy, że mam następujące commity w moim lokalnym oddziale,Jak mogę zobowiązać się do odległego oddziału jeden po drugim automatycznie

najstarszy 17081fa, najnowszy jest 12ba64e

Jak mogłem pchnąć te zobowiązuje się do zdalnego git serwer jeden po drugim.

Weźmy przykład,

I don't want to push all local commits at once. 

the push order should be 

17081fa -> 30854d2 -> ... -> 12ba64e 

te rewizje są gotowe do pchania na serwerze, ale muszą być wciśnięty jeden po drugim,

muszę wiedzieć, co to polecenie może pozwolić mi zrobić w ten sposób Dzięki

* 12ba64e 
* 0fdf1a6 
* 75428a3 
* 00f837f 
* da9d16d 
* 3f34af9 
* b6066e9 
* cdf2dbf 
* 0d5cc8b 
* db8744c 
* df564b9 
* 30854d2 
* 17081fa 
+0

bo nie jestem w stanie przetestować funkcjonalność na moim komputerze lokalnym , pchnij zatwierdzenia jeden po drugim do zdalnego serwera i wyzwalacz CI może pozwolić mi odszukać buggy commit szybko – newBike

Odpowiedz

14

można po prostu podać pełną refspec podczas pchania:

git push origin 17081fa:branchname 
git push origin 30854d2:branchname 
# etc 

Jeśli chcesz zautomatyzować trochę, można napisać pętlę Litte powłoki, która czeka na swojej przyciśnięcie:

for hash in $(git rev-list 17081fa^..12ba64e); do 
    read -p "Pushing $hash. Press return to continue."; 
    git push origin $hash:branchname; 
done 
+0

fajnie, właśnie tego potrzebuję, dziękuję – newBike

+0

wow, ładne wyjaśnienie, więc +1 – Randroid

Powiązane problemy