2012-11-01 9 views
8

To trochę jak chcę wiśni wybrać wszystkie rewizje z branży, z wyjątkiem jednego, ale chciałbym to zrobić w jednym poleceniu ...Jaki jest najprostszy sposób scalenia wszystkich zmian poza jedną gałęzią w Git?

• Tniemy komunikat, który tworzy oddział

• Wydanie zmienia numer wersji we wszystkich naszych pompach, w oddziale na jeden numer, a na wzorcu na inny numer

• Wprowadziłem kilka innych zmian do oddziału i chcę je skopiować zmienia się z powrotem na mistrza

• Założyłem oddział z powrotem na mistrza, który czy zmiany w kodzie, ale także zmiany numeru wersji, powodują konflikty w każdym pom? Pomysłem, czy mogę łatwo przywrócić wszystkie pliki pom do ich zawartości przed scaleniem, a następnie zatwierdzić to w wyniku scalenia?

+0

Jeśli twoja sytuacja polega na tym, że chcesz scalić, ale pomijasz wszystkie pliki, które są w konflikcie, zobacz [Czy mogę scalać tylko niekolidujące zmiany w Git?] (Http://stackoverflow.com/questions/12572530/ git-merge-ignoring-conflict) –

+0

Jest lepsze rozwiązanie. Użyj mojego sterownika scalania i nie musisz nic robić :-) spójrz na moją odpowiedź: http://stackoverflow.com/a/26866992 –

Odpowiedz

12

Oto, co proponuję zrobić. Po pierwsze, czy regularny seryjnej, ale nie popełnić go:

git checkout master 
git merge --no-commit <branch> 

następnie przywrócić wszystkie pom plików:

for file in $(find . -name 'pom.xml'); do git checkout HEAD "$file"; done 

to powinieneś być w stanie zobowiązać się ostateczny wynik:

git commit 
+0

Pracował świetnie. Dzięki! Wykres dziennika wygląda znacznie lepiej niż wiśnia. Wciąż jest kilka nieskrytych plików .orig i .BACKUP, ale pozbycie się ich to inna sprawa. –

+0

+1 ... niezła rutyna ... bardzo śliska ;-) –

Powiązane problemy