Ich habe ein Windows-Befehlsskript zum Zusammenführen der Entwickler in einen Projektzweig verzweigen. Es beginnt mit dem Lesen des aktuellen Zweignamens, dem Stashing von Änderungen, dem Abrufen und Zusammenführen der dev- und project-Zweige, wechselt dann zurück zum ursprünglichen Zweig und öffnet den Stash.
Das Problem ist, dass es möglicherweise keine Änderungen an Stash gibt. Dadurch bleibt der vorherige Vorrat oben auf dem Stapel. Wenn es am Ende des Skripts ankommt und den Stash öffnet, wird der vorherige Stash geöffnet, der nichts mit dem aktuellen Zweig zu tun hat.
Set SourceBranch=dev
Set ProjectBranch=project
:: Stash current changes.
For /F "tokens=1,2" %%a In ('Git branch -q') Do If "%%a"=="*" Set CurrentBranch=%%b
Git stash save -u
:: Pull latest source branch.
Git checkout %SourceBranch%
Git pull
For /F "tokens=1,3" %%a In ('Git branch -q -v') Do If "%%a"=="*" Set MergeHash=%%b
:: Merge source into project branch.
Git checkout %ProjectBranch%
Git pull
Git merge --commit %MergeHash%||Exit 1
:: Return to original branch.
Git checkout %CurrentBranch%
Git stash pop
Wie erhalte ich Feedback von Git stash
oder Git status
um festzustellen, ob ich den Stash öffnen muss?
Es lohnt sich, das zu beachten
git pull
undgit rebase
habe jetzt ein--autostash
Argument, mit einem entsprechendenrebase.autoStash
Aufbau. Es wurde in Version 2.6 hinzugefügt.– Penz
22. Dezember 2018 um 7:59 Uhr
Wenn Sie dies so bearbeiten, dass es eher Bash-ähnlich ist, kollidiert es damit, dass es sich um ein Windows-Befehlsskript handelt, und macht es tatsächlich ungültig. 😉
– Hand-E-Food
18. September 2019 um 21:22 Uhr