• Link zu Xing
  • Link zu LinkedIn
  • Link zu X
  • Link zu Rss dieser Seite
  • Link zu GitHub
  • Newsletter
  • Kontaktieren Sie mich
Frank W. Rahn
  • Meine BlogbeiträgeZeigt meinen Blog an
  • RessourcenZeigt Ihnen eine Auswahl von Ressourcen
    • Franks aktueller IT-Werkzeugkasten
      • Diese Werkzeuge setze ich zur Zeit ein
    • Meine Präsentationen
      • Zeigt Ihnen meine Präsentationen
    • Weblinks
      • Meine Linksammlung
    • Buchtipps
      • Eine Liste von mir empfohlener Literatur
    • XML-Namespace
      • Zeigt meinem XML-Namespace
  • Franks aktueller IT-WerkzeugkastenDiese Werkzeuge setze ich zur Zeit ein
  • Meine PräsentationenZeigt Ihnen meine Präsentationen
  • WeblinksMeine Linksammlung
  • BuchtippsEine Liste von mir empfohlener Literatur
  • XML-NamespaceZeigt meinem XML-Namespace
  • Über mich …Die persönlichen Informationen über den Softwarearchitekt Frank Rahn
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
Howto

Großes Beispiel mit Git und GitHub

Dieses Beispiel gehört zum Beitrag Git mit GitHub und liefert ein Beispiel für das parallele Arbeiten mit Branches unter Git. Dieses Beispiel verwendet mein öffentlichen Repository git_test bei GitHub.

Zurück zum Haupt-Beitrag Git mit GitHub

Die folgenden Schritte sind notwendig: [verstecken]

  1. Vorbereiten des Branches master
  2. Erstellung einer Version v3.0.0
  3. Erzeugen des Branches features-2
  4. Änderung auf dem Branch master
  5. Wechsel zum Branch features-1
  6. Änderungen durchführen
  7. Wechsel zum Branch features-2
  8. Änderungen durchführen
  9. Erzeugen und Wechseln zum Branch features-3
  10. Änderungen durchführen
  11. Alle Änderungen ins öffentliche Repository stellen
  12. Nochmals den Branch features-2 ändern und hochladen
  13. Letztmalig den Branch master ändern und hochladen
  14. Merge des Branch features-1 in den Branch master
  15. Merge des Branch features-2 in den Branch master
  16. Merge des Branch features-3 in den Branch master
  17. Die graphische Darstellung mit git log
  18. Zum Abschluss wird noch eine Version erstellen …
  19. … und die Versionen hochladen

1. Vorbereiten des Branches master

 
$ git branch
  features-1
* master
$ vi master.txt 
$ git add master.txt
$ git commit -m "Multibranch Test Vorbereitung"
[master 7ec87e3] Multibranch Test Vorbereitung
 1 file changed, 4 insertions(+)
$

2. Erstellung einer Version v3.0.0

$ git tag v3.0.0
$ 
$ git status 
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
$

3. Erzeugen des Branches features-2

$ git branch features-2
$

4. Änderung auf dem Branch master

 
$ vi master.txt 
$ git add master.txt
$ git commit -m "Änderung auf dem Branch master"
[master a9ee538] Änderung auf dem Branch master
 1 file changed, 1 insertion(+)
$ 
$ git status 
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)
$

5. Wechsel zum Branch features-1

$ git checkout features-1
Switched to branch 'features-1'
$ ls -l
insgesamt 12
-rw-rw-r-- 1 frank frank  70 Sep 15 17:08 COPYRIGHT.md
-rw-rw-r-- 1 frank frank  13 Sep 15 19:43 features-1.txt
-rw-rw-r-- 1 frank frank 960 Sep 15 18:33 README.md
$

6. Änderungen durchführen

 
$ vi features-1.txt 
$ git add features-1.txt
$ git commit -m "Änderung auf dem Branch features-1"
[features-1 1475192] Änderung auf dem Branch features-1
 1 file changed, 1 insertion(+)
$

7. Wechsel zum Branch features-2

$ git checkout features-2
Switched to branch 'features-2'
$

8. Änderungen durchführen

 
$ echo "Features 2" > features-2.txt 
$ git add features-2.txt
$ vi master.txt 
$ git add master.txt
$ git commit -m "Änderung auf dem Branch features-2"
[features-2 9566b8c] Änderung auf dem Branch features-2
 2 files changed, 2 insertions(+)
 create mode 100644 features-2.txt
$ 
$ git status 
# On branch features-2
nothing to commit (working directory clean)
$ ls -l
insgesamt 20
-rw-rw-r-- 1 frank frank  70 Sep 15 17:08 COPYRIGHT.md
-rw-rw-r-- 1 frank frank  13 Sep 15 21:10 features-1.txt
-rw-rw-r-- 1 frank frank  11 Sep 15 21:11 features-2.txt
-rw-rw-r-- 1 frank frank  71 Sep 15 21:11 master.txt
-rw-rw-r-- 1 frank frank 960 Sep 15 18:33 README.md
$

9. Erzeugen und Wechseln zum Branch features-3

$ git branch features-3
$ git checkout features-3
Switched to branch 'features-3'
$

10. Änderungen durchführen

 
$ echo "Features 3" > features-3.txt 
$ vi master.txt 
$ git add --all
$ git commit -m "Änderung auf dem Branch features-3"
[features-3 c9e7376] Änderung auf dem Branch features-3
 2 files changed, 2 insertions(+)
 create mode 100644 features-3.txt
$

11. Alle Änderungen ins öffentliche Repository stellen

$ git push
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 13, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (9/9), 845 bytes, done.
Total 9 (delta 3), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
   4dcb955..1475192  features-1 -> features-1
   03cd179..a9ee538  master -> master
$ git push origin features-2 features-3
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 10, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (8/8), 796 bytes, done.
Total 8 (delta 2), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
 * [new branch]      features-2 -> features-2
 * [new branch]      features-3 -> features-3
$

Die beiden Branches features-2 und features-3 werden das erste Mal hochgeladen.

12. Nochmals den Branch features-2 ändern und hochladen

 
$ git checkout features-2
Switched to branch 'features-2'
$ vi master.txt 
$ git add master.txt
$ git commit -m "Änderung auf dem Branch features-2 (2)"
[features-2 9b8df6e] Änderung auf dem Branch features-2 (2)
 1 file changed, 1 insertion(+)
$ git push
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 334 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
   9566b8c..9b8df6e  features-2 -> features-2
$

13. Letztmalig den Branch master ändern und hochladen

 
$ git checkout master 
Switched to branch 'master'
$ vi master.txt 
$ git add master.txt
$ git commit -m "Änderung auf dem Branch master (2)"
[master 8596f32] Änderung auf dem Branch master (2)
 1 file changed, 1 insertion(+)
$ git push
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 328 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
   a9ee538..8596f32  master -> master
$

Im folgendem Bild wird der Graph der Branches auf GitHub vor dem Merge gezeigt.

Der Branch Graph vor dem Merge

Der Branch Graph vor dem Merge (© Frank Rahn)

14. Merge des Branch features-1 in den Branch master

 
$ git merge features-1
Merge made by the 'recursive' strategy.
 features-1.txt |    1 +
 1 file changed, 1 insertion(+)
$ git status 
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)
$ git push
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 303 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
   8596f32..4abfd71  master -> master
$

Im folgendem Bild wird der Graph der Branches auf GitHub nach dem Merge von Branch features-1 gezeigt.

Der Branch Graph nach dem Merge von features-1

Der Branch Graph nach dem Merge von features-1 (© Frank Rahn)

15. Merge des Branch features-2 in den Branch master

 
$ git merge features-2
Auto-merging master.txt
Merge made by the 'recursive' strategy.
 features-2.txt |    1 +
 master.txt     |    2 ++
 2 files changed, 3 insertions(+)
 create mode 100644 features-2.txt
$ git push
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 387 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
   4abfd71..050023b  master -> master
$

Im folgendem Bild wird der Graph der Branches auf GitHub nach dem Merge von Branch features-2 gezeigt.

Der Branch Graph nach dem Merge von features-2

Der Branch Graph nach dem Merge von features-2 (© Frank Rahn)

16. Merge des Branch features-3 in den Branch master

 
$ git merge features-3
Auto-merging master.txt
Merge made by the 'recursive' strategy.
 features-3.txt |    1 +
 master.txt     |    1 +
 2 files changed, 2 insertions(+)
 create mode 100644 features-3.txt
$ git push
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 376 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
   050023b..ae20eaf  master -> master
$

Im folgendem Bild wird der Graph der Branches auf GitHub nach dem Merge von Branch features-3 gezeigt.

Der Branch Graph nach dem Merge von features-3

Der Branch Graph nach dem Merge von features-3 (© Frank Rahn)

17. Die graphische Darstellung mit git log

$ git log --pretty=oneline --graph
*   ae20eafeb68aa87ad8c25a49b4b6eca8d30902e4 Merge branch 'features-3'
|  
| * c9e737624aa4805b4a7a565683082f83f894aac1 Änderung auf dem Branch features-3
* |   050023bd4de7f1ae09cc56eb4f29bda20a511503 Merge branch 'features-2'
|   
| * | 9b8df6e434fb06ddae6feda4ba6e0ec4da3bceb2 Änderung auf dem Branch features-2 (2)
| |/  
| * 9566b8c1664d46cf1a44d7230e691f99771ccda2 Änderung auf dem Branch features-2
* |   4abfd7107531d82c7a4ded8960879175a579a728 Merge branch 'features-1'
|   
| * | 1475192079aba54f7d72fba38c58183d3265fc54 Änderung auf dem Branch features-1
* | | 8596f32a8b917df217c9f4ea07d0a7fccbe68512 Änderung auf dem Branch master (2)
* | | a9ee53815d71b69e9676981b75cf1be05900c439 Änderung auf dem Branch master
| |/  
|/|   
* | 7ec87e3b7577cb0432804109c80239aa7f421b4d Multibranch Test Vorbereitung
* | 03cd1798363337086d7109b8533d2802fa4e93ca Letzte Änderung übernehmen
|/  
* 4dcb955b2a95f32e31e6181b6359ee3f269b61eb Weitere Änderung
* 71032f2bb043d28d0d5d922b1fc750c207099980 Kleinere Änderung
* f4c448093477c211bf3a25b39b4e433c527c686a Implementierung Features 1
* ea3cfb90b1aa03e108b7724220647174a7522388 Doppelte Einrückung erstellt
* 7607fcfc7591cc2b7553e77eb0def0f20965643b Markdown erweitert
* f89b24b5cd8b39d9671a8eebdef10b3aebb752e8 Copyzeichen richtig gesetzt
* 8f30b7cab9240af34ae113c50f21044ebf4e293a Datei umbenannt
* 5de03832c99aca74a36aeb2e74efb2a9e17e741f Copyright hinzugefüht
* 834c378eb1cd14e97baf6b02a48b56961bcb8f70 Die Datei doch wieder löschen
* e4237249b3a5a72e28567cb633659aca0105ad84 Eine Datei hinzufügen
* 4977b6ee26ac2c001af8699d3d45437fe9030721 Korrektur
* 205e659fb0edb001c191bc7417c61b02b83c9375 Erste Erweiterungen
* 7b69e85046057eac684292957f0c2e283b7aa483 Erstellung
$

18. Zum Abschluss wird noch eine Version erstellen …

$ git tag v4.0.0
$

19. … und die Versionen hochladen

$ git push --tags 
Enter passphrase for key '/home/frank/.ssh/id_rsa': 
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:frank-rahn/git_test.git
 * [new tag]         v3.0.0 -> v3.0.0
 * [new tag]         v4.0.0 -> v4.0.0
$

Zurück zum Haupt-Beitrag Git mit GitHub

  • Über
  • Letzte Artikel
Frank Rahn
Frank Rahn
Frank Rahn ist Softwarearchitekt. Er unterstützt bei der Konzeption von Softwarearchitekturen mit Java-Technologie. Folge Sie ihm auf Facebook oder Twitter.

Benötigen Sie Unterstützung? Kontaktieren Sie ihn.

Hat Ihnen dieser Beitrag gefallen? Wir würden uns über Ihren Kommentar freuen! Bitte verwenden Sie Ihren bürgerlichen Namen.
Frank Rahn
Letzte Artikel von Frank Rahn (Alle anzeigen)
  • Wer ist der optimale Java Bean Mapper? - Freitag, 22. September 2023
  • Spring Boot Webanwendung: Die ersten Schritte (Tutorial) - Montag, 28. März 2016
  • Mainframe-Zugriff via Java - Sonntag, 04. Mai 2014
1 Kommentar/von Frank Rahn
Schlagworte: Git, Linux, Shell, Toolchain, Versionsverwaltung
Eintrag teilen
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf LinkedIn
  • Per E-Mail teilen
  • Teilen auf Xing
https://www.frank-rahn.de/wp-content/uploads/github-graph-branches-1.png 266 527 Frank Rahn /wp-content/uploads/logo.png Frank Rahn2012-09-15 22:15:452021-03-14 14:41:15Großes Beispiel mit Git und GitHub
Das könnte Dich auch interessieren
Bild von Linux Dateimanager Nautilus Link-Count: Finden von versteckten Verzeichnissen unter Linux
Schaubild des asymmetrisches Verschlüsselungsverfahrens GnuPG benutzen
Eine Festplatte Einige Tipps mit defekten Festplatten oder Partitionen
Die Stored Procedure "searchPersons" mit User-defined Types (UDT) Stored Procedure mit User-defined Types unter Oracle
Wie Du Git mit GitHub nutzt Git: Wie Du Git mit GitHub nutzt (Howto)
Bild zeigt eine Unix-Shell unter Linux Zeit sparen mit wichtigen Unix-Shell Befehle
1 Kommentar

Trackbacks & Pingbacks

  1. Git: Wie Du Git mit GitHub nutzt (Howto) | Frank W. Rahn sagt:
    Mittwoch, 23. Dezember 2020 um 18:25 Uhr Uhr

    […] größeres Beispiel zum parallelen Arbeiten mit Entwicklungzweigen ist im Beitrag Großes Beispiel mit Git und GitHub zu […]

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ihre E-Mail-Adresse wird nicht veröffentlicht. Ihr Kommentar wird verschlüsselt an meinen Server gesendet. Erforderliche Felder sind mit * markiert.

Weitere Informationen und Widerrufshinweise finden Sie in meiner Datenschutzerklärung.

Wollen Sie kein neuen Beiträge mehr verpassen?
Dann abonnieren Sie bitte meinen Newsletter.
Meinen Newsletter abonnieren

Themen

  • Wer ist der optimale Java Bean Mapper?
  • Einführung in das Spring Framework, Boot, Batch, Data, REST, Security, Web, …
  • Franks aktueller IT-Werkzeugkasten
  • Git, GitHub, EGit, …

Navigation

  • Buchtipps
  • Newsletter
  • Weblinks
Search Search

Werbung

  • JProfiler
Beliebt
  • Das Klassendiagramm für den Java Bean Mapper Test am Beispiel "ByHand"
    Wer ist der optimale Java Bean Mapper?Freitag, 22. September 2023 - 20:59 Uhr
  • Das offizielle Logo von EGit
    GitHub mit Eclipse (EGit)Freitag, 26. Oktober 2012 - 16:15 Uhr
  • Grobe Übersicht üder den Spring Framework Container
    Einführung in das Spring FrameworkSonntag, 01. Mai 2011 - 18:30 Uhr
  • Die Stored Procedure "searchPersons" mit User-defined Types (UDT)
    Spring und Stored Procedure mit User-defined Types (Tut...Freitag, 26. Oktober 2012 - 21:45 Uhr
  • Spring Boot Webanwendung
    Spring Boot Webanwendung: Die ersten Schritte (Tutorial...Montag, 28. März 2016 - 16:29 Uhr
Schlagworte
Annotations AOP Architektur Autorisierung Cookies CRUD DAO DI Git HTML HTTP IoC Java Java EE Java SE JPA JSR Linux MVC Open Source Software PDF POJO REST (RESTful) ROCA Self-contained Systems Serviceorientierte Shell Sicherheit (Security) SOAP Spring SQL SVN Test Toolchain URI URL URN User-defined Type Versionsverwaltung VPN Webservice WS-* WSDL XML XML-Schema

Blogarchiv

Links

Mastodon
Twitter
LinkedIn
Xing
GitHub

Lizenz

Creative Commons Lizenzvertrag Die Texte (nicht Bilder) von Frank Rahn stehen unter einer Creative Commons Namensnennung - Keine Bearbeitungen 4.0 Deutschland Lizenz.

Affiliate-Links

Die mit (*) gekennzeichnete Links sind sogenannte Affiliate-Links. Kommt über einen solchen Link ein Einkauf zustande, werde ich mit einer Provision beteiligt. Für Sie entstehen dabei keine Mehrkosten. Wo, wann und wie Sie ein Produkt kaufen, bleibt natürlich Ihnen überlassen.

Blogkategorien

Copyright © Frank W. Rahn
  • Impressum / HaftungsausschlussDie notwendigen gesetzlichen Angaben dieser Webseite von Frank Rahn
  • DatenschutzerklärungDie Datenschutzerklärung von Frank Rahn
  • NewsletterKeine neuen Beiträge mehr verpassen!
  • BildnachweisDer komplette Bildnachweis von Frank Rahn
Link to: Franks aktueller IT-Werkzeugkasten Link to: Franks aktueller IT-Werkzeugkasten Franks aktueller IT-WerkzeugkastenDieses Bild zeigt meinen IT-Werkzeugkasten Link to: Wie Du ein Subversion Repository (SVN) nach Git konvertierst Link to: Wie Du ein Subversion Repository (SVN) nach Git konvertierst Der Git Network Graph des Projektes "test-spring-simple"Wie Du ein Subversion Repository (SVN) nach Git konvertierst
Nach oben scrollen Nach oben scrollen Nach oben scrollen

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden. Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

DatenschutzerklärungImpressumAlle Cookies akzeptierenKeine Cookies akzeptierenIndividuelle Cookie-Einstellungen vornehmen

Cookie- und Datenschutzeinstellungen



Wie wir Cookies verwenden

Wir setzen auf unserer Webseite verschiedene Arten von Cookies ein, die auf Ihrem Gerät gespeichert werden.

Einige dieser Cookies sind für die einwandfreie Funktion der Webseite notwendig, während andere Cookies Ihnen ein besseres Besuchererlebnis bieten.

Klicken Sie links auf die verschiedenen Reitern, um mehr zu erfahren. Sie können auch einige Cookie-Einstellungen individuell anpassen. Beachten Sie, dass das Blockieren einiger Cookies die einwandfreie Funktion unserer Webseite beeinträchtigt.

Technisch notwendige Cookies

Diese Cookies sind unbedingt erforderlich, denn sie ermöglichen grundlegende Funktionen und sind für die einwandfreie Funktion der Webseite erforderlich.

Sie können diese Cookies jederzeit blockieren oder löschen, indem Sie Ihre Browsereinstellungen ändern und die Blockierung aller Cookies auf dieser Webseite erzwingen. Leider werden Sie dann immer wieder gefragt, ob Sie Cookies akzeptieren oder ablehnen wollen, wenn Sie unsere Webseite erneut besuchen.

Wir setzen die Cookies aviaPrivacyEssentialCookiesEnabled, aviaPrivacyMustOptInSetting, aviaPrivacyRefuseCookiesHideBar und aviaCookieConsent ein, um Ihre individuellen Cookie-Einstellungen zu speichern. Diese Informationen geben wir an keinen Drittanbietern weiter.

Diese Cookies haben eine Laufzeit von einem Jahr, dann müssen Sie die Einstellungen wiederholen.

Die VG WORT setzt das Sitzungscookie srp zur Messung von Zugriffen auf Texten, um die Kopierwahrscheinlichkeit des Textes zu erfassen. Damit partizipieren ich an den Ausschüttungen der VG WORT, welche die gesetzliche Vergütung für die Nutzungen urheberrechtlich geschützter Werke gemäß § 53 UrhG sicherstellen. Das Cookie wird dazu verwendet, um den Nutzer zu identifizieren und ggf. Daten mehrerer Aufrufe von Texten miteinander verknüpfen zu können.

Nach Angaben der VG WORT stellt das eingesetzte Verfahren sicher, dass einzelne Nutzer oder ihr Leseverhalten nicht ermittelbar sind, wenn die Anzahl der Textaufrufe gezählt wird. Alle von der VG Wort erfassten Daten werden sofort sicher verschlüsselt. Der Einsatz des Zählpixels wurde durch das Bayerische Landesamt für Datenschutzaufsicht begutachtet und als datenschutzkonform bewertet.

Datenschutzerklärung der VG WORT

Marketing-Cookies

Die Marketing-Cookies werden von Drittanbietern oder Publishern, wie z. B. Google Analytics, verwendet, um personalisierte Werbung anzuzeigen. Sie tun dies, indem sie Besucher über Webseiten hinweg verfolgen (Tracking).

Wir setzen keine Marketing-Cookies ein.

Datenschutzbestimmungen

Sie können unsere Cookies und Datenschutzeinstellungen im Detail in unserer Datenschutzerklärung nachlesen.

Cookie-Einstellungen übernehmenKeine Cookies akzeptieren
Nachrichtenleiste öffnen Nachrichtenleiste öffnen Nachrichtenleiste öffnen