Git autorebase vor push

Aradiv

Well-known member
ID: 217591
L
20 April 2006
1.683
176
Ich habe momentan folgende Installation

Repository dev
Das Lokale Repository wo ich entwickle

Repository test
Für Tests aller Art

Repository live
Der aktuelle offizielle Stand.


Der Workflow sieht momentan so aus das ich
x commits in dev mache und danach dann zu test pushe
das wiederholt sich y-mal bis die tests abgeschlossen sind und ich zu live pushe

Das Ergebnis ist dann das ich in Live alle änderungen aus Dev habe ebenso in Test.
Ich möchte aber gerne das nur die Schritte zwischen 2 pushs auf test und live zu sehen sind.

Heißt ich müsste vor jedem push einen manuell raussuchen wie viele commits sind seit dem letzten push in das System passiert sind diese alle mit rebase zusammen fassen das dann in das jeweilige System pushen und dabei die einzelnen commits Lokal behalten.

Das ist manuell über etliche Schritte möglich ich würde das ganze aber gerne automatisieren und der Funktion dann noch eine eigene commit Message mitgeben.

also als Ergebnis sowas wie
Code:
git pushdiffs test -m "added Feature X"
Hat jemand von euch sowas schon mal gemacht und was wäre eurer Meinung nach der beste Ansatz dafür?

Ich würde einen neuen Befehl allias git-pushdiffs in $PATH erstellen der das alles macht aber vllt gibt es ja auch eine deutlich einfacherer Lösung.:ugly:

So sollte das ganze dann aussehen
Nr|Dev|Test|Live
1|Commit|Commit|Commit
2|Commit||
3|Commit||
4|Commit|Commit|
5|Commit||
6|Commit||
7|Commit|Commit|
8|Commit||
9|Commit||
10|Commit|Commit|Commit
11|Commit||
12|Commit||
13|Commit|Commit|
14|Commit||
15|Commit||
16|Commit|Commit|
17|Commit||
18|Commit||
19|Commit|Commit|Commit

Also in Live sieht der Verlauf dann so aus
Code:
1->10->19

in Test
Code:
1->4->7->10->13->16->19

und in Dev dann alle von 1 bis 19
 
Zuletzt bearbeitet:
Du weißt, welche Schritte Du von Hand auf der Console eingibst!
Dann schreib dir halt diesen Befehl des pushens in eine Batchdatei und wende darauf einen Algorithmus an, der dir einzelne Commits wie in Deiner Tabelle herausfiltert und pushed.
2 Variablen für die beiden Verzeichnisse (test,live) und mehrere Filter auf den der commit erfolgt.
So schwer ist das nicht, wenn man das ganze schon von Hand in der Console macht!
für test nen laufvaraiblen add von 3 und bei live von 9 wobei der counter bei 1 startet. Und wenn für dev auch machen musst, dann ist dort der add halt 1
 
Okay bis jetzt am besten Funktioniert folgende Lösung.

Code:
temp Ordner erstellen
remote git repo kopieren
neue Daten ins repo kopieren
add .
comit -m $message
git push remote
temp Ordner löschen

allerdings gefällt mir die Lösung nicht wirklich gut aber naja anders scheint das nicht so zu klappen wie ich es gerne hätte :D