Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Geld allein macht nicht glücklich - benutzt kivitendo!

+1 Punkt

Moin, moin, liebe Kivitendo-Community,

meine Kivitendo-Installation habe ich nach der "Anmerkung" in der Dokumentation via Git durchgeführt:
https://www.kivitendo.de/kivi/doc/html/ch02s03.html

Dazu habe ich folgende Frage(n), es wird hier ein eigener Branch für meine Änderungen angelegt:

$ git checkout -b meine_eigenen_änderungen

Darin soll alles liegen was ich anpasse, wie z.B. meine Templates.
Anschließend wird ein checkout in das Release 3.4.1 durchgeführt:

$ git checkout release-3.4.1

Nun arbeite ich doch wiederum im Release und füge dem offiziellen Release meine Änderungen zu der templates hinzu. Wenn ich nun später einen commit mache, sagt mir git, dass ich dem eigentlichen Release voraus (Ahead) bin...

Sollte ich nicht eigentlich im checkout -b meine_eigenen_änderungen bleiben und dort Anpassungen vornehmen, um später ein rebase mit dem neuen Release zu machen?

Ganz unten wird dann ein rebase mit meine_aenderungen gemacht, müsste es hier nicht ein Rebase mit meine_eigenen_änderungen sein? Ich weiß nicht, woher nun meine_aenderungen kommt.

Branches bei Git sind für mich Neuland, jedoch ist es doch so, dass ein Branch alles vom "master" oder "release-x.x.x" erbt und um meine neuen Entwicklungen/Features erweitert wird? Später kann dies ggf. mit rebase "zusammengeführt" werden?

Also eigentlich arbeite ich die ganze Zeit im Branch meine_eigenen_änderungen, bis ich ein neues Release ziehe und ein rebase durchführe mit diesem durchführe, oder?

Vielleicht habe ich hier auch ein Verständnisproblem beim Umgang mit Git.

Danke und viele Grüße
Matthias

Gefragt von (180 Punkte)

1 Antwort

+1 Punkt
 
Beste Antwort

Hi,
da die "Anmerkung" von mir ist, schreib ich mal was dazu ....

Der beispielhafte Workflow sollte nur als Idee dienen. Das ist in der Tat schlecht beschrieben, da die Änderungen (release-3.4.1) dann losgelöst von einem Branch sind. Es fehlt an der Stelle der Wechsel zum eigenen lokalen Branch.

Also eigentlich arbeite ich die ganze Zeit im Branch meine_eigenen_änderungen, bis ich ein neues Release ziehe und ein rebase durchführe mit diesem durchführe, oder?

Genau so.

Ich hab die Anmerkungen in der Doku jetzt angepasst, hier zum Gegenlesen:

$ git clone https://github.com/kivitendo/kivitendo-erp.git
$ cd kivitendo-erp/
$ git checkout release-3.4.1                # das ist ein alter release aus dem wir starten ...
$ git checkout -b meine_eigene_änderungen   # unser lokaler branch - unabhängig von allen anderen
$ git add templates/mein_druck              # das sind unsere druckvorlagen inkl. produktbilder
$ git commit -m "juhu tolle ändernungen"

[meine_aenderungen 1d89e41] juhu tolle ändernungen
 4 files changed, 380 insertions(+)
 create mode 100644 templates/mein_druck/img/webdav/tesla.png
 create mode 100644 templates/mein_druck/mahnung.tex
 create mode 100644 templates/mein_druck/zahlungserinnerung_zwei.tex
 create mode 100644 templates/mein_druck/zahlungserinnerung_zwei_invoice.tex

# 5 Jahre später ...
# webserver abschalten!

$ git checkout master
$ git pull                                  # oder git fetch und danach ein stable release tag auswählen (s.o.)
$ git checkout meine_eigenen_änderungen
$ git rebase master

Zunächst wird der Branch zurückgespult, um Ihre Änderungen
darauf neu anzuwenden ...
Wende an: juhu tolle ändernungen
$ service apache2 restart                   # webserver starten!
Beantwortet von (8.6k Punkte)
ausgewählt von

Herzlichen Dank für die schnelle Rückmeldung!
Wunderbar - danke für die Bestätigung der Arbeitsweise mit Git und Kivitendo! :-)

Ähnliche Fragen

0 Punkte
2 Antworten
+1 Punkt
1 Antwort
0 Punkte
1 Antwort
0 Punkte
0 Antworten
Gefragt 25, Sep 2016 von grichardson (16.3k Punkte)
...