Software Engineering 8. Version Control with Git
Volltext
(2) Einordnung: Zusammenfassung Problem. Continuous Delivery & Feedback. ! Anforderungsermittlung -‐ (Nicht-‐)funktionale Anf. -‐ Anwendungsfälle -‐ Userstories. Anforderung. 2. # / T g n ti Tes. ". Lösung. D. D BD / D. Modellierung -‐ UML -‐ OO-‐Design -‐ Design / Architektur Patterns -‐ SOLID Design Prinzipien -‐ GRASP Software Engineering. $ Entwurf. Realisierung -‐ Programmierrichtlinien -‐ Code Smells -‐ Versionsverwaltung -‐ Continuous Integration -‐ Code Reviews -‐ Pair Programming -‐ Dokumentation.
(3) Literaturempfehlung. Online verfügbar unter: https://git-‐scm.com/book/en/v2 Onlinetutorials auf: https://try.github.io und http://gitreal.codeschool.com/ Außerdem: Übungsblätter zu git sind auf der Vorlesungsseite zu finden 3. Software Engineering.
(4) Versionskontrolle. Software Engineering.
(5) Was ist Versionskontrolle? Ein Versionskontrollsystem (VCS) speichert } ... den Inhalt aller Dateien eines Projektes } ... die gesamte Änderungsgeschichte eines Projektes. }. }. 5. Wer hat wann und warum, welche Dateien wie geändert?. Software Engineering.
(6) Wozu Versionskontrolle? Zurücksetzen des Projektes auf einen früheren Stand Dokumentation der Projektgeschichte und der Beiträge verschiedener Entwickler Parallele Entwicklung an mehreren Entwicklungszweigen Koordination der Arbeit verschiedener Entwickler. } } } }. 6. Software Engineering.
(7) Begriffe Repository . }. }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie . }. }. Kopie aller Dateien einer Version . }. }. }. 7. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status . }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(8) Begriffe Repository . }. }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie . }. }. Kopie aller Dateien einer Version . }. }. }. 8. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status . }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(9) Begriffe Repository . }. }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie . }. }. Kopie aller Dateien einer Version . }. }. }. 9. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status . }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(10) Wo ist das Repository gespeichert? }. Lokale Versionskontrollsysteme Local Computer Repository. Working Copy. Version 3 File 2 Version 2 File 1 Version 1. 10. Software Engineering.
(11) Wo ist das Repository gespeichert? }. Zentrale Versionskontrollsysteme Central VCS Server. Computer A Computer B Working Copy Computer C Working Copy. File 2. Working Copy. File 2. 2 FileFile 1 File 1 File 1. 11. Software Engineering. Repository. Version 3 Version 2 Version 1.
(12) Wo ist das Repository gespeichert? }. Verteilte Versionskontrollsysteme Server Computer Computer A Repository. Version 3. Repository. Version 3 .... Computer B Repository. Version 3. .... .... Working Copy. Working Copy. File 1. File 1. .... .... 12. Software Engineering.
(13) Begriffe }. Repository }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie }. }. }. Kopie aller Dateien einer Version . }. }. 13. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(14) Begriffe }. Repository }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie }. }. }. Kopie aller Dateien einer Version . }. }. 14. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(15) Diffs answer = 7 factor = 3 while (answer < 60) { answer *= factor factor += 1 } vorher. answer = 7 factor = 2 while (answer < 40) { answer *= factor factor += 1 } nachher. answer = 7 -factor = 3 -while (answer < 60) { +factor = 2 +while (answer < 40) { answer *= factor factor += 1 } diff 15. Software Engineering.
(16) Was ist im Repository gespeichert? }. Diff basierte Versionskontrollsysteme Veränderung über die Zeit. Version 1. Version 2. File A. Δ1. Version 3. File B File C. 16. Δ1. Software Engineering. Δ2.
(17) Was ist im Repository gespeichert? }. Snapshot basierte Versionskontrollsysteme Veränderung über die Zeit. 17. Version 1. Version 2. Version 3. File A. A1. A1. File B. B. B. File C. C1. C2. Software Engineering.
(18) Begriffe }. Repository }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie }. }. }. Kopie aller Dateien einer Version . }. }. 18. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(19) Begriffe }. Repository }. }. Änderungsgeschichte und Dateiinhalte für alle Versionen . Arbeitskopie }. }. }. Kopie aller Dateien einer Version . }. }. 19. Zusammengefasster Unterschied zwischen der Working Copy und dem Repository. }. Unterschiede der Dateien zwischen Repository und Arbeitskopie oder anderer Version . Checkout }. Status }. Diff . Dateiinhalte einer Version aus Repository in Working Copy kopieren . Commit }. Software Engineering. Derzeitigen Stand der Working Copy als neue Version in das Repository übernehmen.
(20) git. Software Engineering.
(21) Was ist git? } } }. Verteiltes Versionskontrollsystem Ursprünglich von Linus Torvalds zur Versionskontrolle des Linux Kernels entwickelt Heute weit verbreitet in Open Source, als auch zur proprietären Entwicklung. 21. Software Engineering.
(22) Wie funktioniert git? } } } } }. Verteilt Snapshot-‐basiert Effiziente Speicherung durch Hash-‐Adressierung Index Viele Kommandozeilenbefehle. 22. Software Engineering.
(23) Drei Schritte in Git }. Git unterscheidet zwischen Working Copy, Staging Area und Repository Computer Working Copy. Staging Area Copy project. Stage changes (add). 23. Repository. (checkout). Confirm (commit). Software Engineering.
(24) ~ mkdir my-prog. 24. Software Engineering.
(25) % my-prog. ~ mkdir my-prog ~ 25. Software Engineering.
(26) % my-prog. ~ mkdir my-prog ~ ~ cd my-prog 26. Software Engineering.
(27) % my-prog. ~ ~ cd my-prog ~/my-prog 27. Software Engineering.
(28) % my-prog. ~ ~ cd my-prog ~/my-prog git init 28. Software Engineering.
(29) % my-prog % .git. ~/my-prog git init Initialized empty Git repository in ~/my-prog/.git/ 29. Software Engineering.
(30) % my-prog % .git & Hello.java ~/my-prog git init Initialized empty Git repository in ~/my-prog/.git/ 30. Software Engineering.
(31) % my-prog % .git & Hello.java Initialized empty Git repository in ~/my-prog/.git/ ~/my-prog git add Hello.java 31 Software Engineering.
(32) index. & Hello.java. % my-prog % .git & Hello.java ~ cd my-prog ~/my-prog git add Hello.java ~/my-prog 32. Software Engineering.
(33) index. & Hello.java. % my-prog % .git & Hello.java ~ ~ cd my-prog ~/my-prog git add Hello.java ~/my-prog git commit -m "Add hello" 33 Software Engineering.
(34) HEAD. master. 9ad66d3 index. tree. & Hello.java. % my-prog % .git & Hello.java ~/my-prog git commit -m "Add hello" [master 9ad66d3] Add hello 1 file changed, 5 insertions (+) 34 Software Engineering.
(35) HEAD. master. 9ad66d3 index. tree. & Hello.java. % my-prog % .git & Hello.java % lib ~/my-prog git commit -m "Add hello" [master 9ad66d3] Add hello 1 file changed, 5 insertions (+) 35 Software Engineering. & Util.java.
(36) HEAD. master. 9ad66d3 index. tree. & Hello.java. % my-prog % .git & Hello.java % lib ~/my-prog git add lib/Util.java. 36. Software Engineering. & Util.java.
(37) HEAD. master. 9ad66d3 tree. & Hello.java. index. & Hello.java % lib & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git add lib/Util.java ~/my-prog 37. Software Engineering. & Util.java.
(38) HEAD. master. 9ad66d3 tree. & Hello.java. index. & Hello.java % lib & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git add lib/Util.java ~/my-prog git commit -m "Add util" 38. Software Engineering. & Util.java.
(39) HEAD. 9ad66d3 tree. & Hello.java. master parent. f146864. index. tree. & Hello.java % lib & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git commit -m "Add util" [master f146864] Add util 1 file changed, 3 insertions (+) 39 Software Engineering. & Util.java.
(40) HEAD. 9ad66d3 tree. & Hello.java. master parent. f146864. index. tree. & Hello.java % lib & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git commit -m "Add util" [master f146864] Add util 1 file changed, 3 insertions (+) 40 Software Engineering. & Util.java.
(41) HEAD. 9ad66d3 tree. & Hello.java. master parent index. f146864 tree. & Hello.java % lib & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git add Hello.java. 41. Software Engineering. & Util.java.
(42) HEAD. 9ad66d3 tree. & Hello.java. master parent. f146864 tree. index. & Hello.java. & Hello.java. % lib. % lib. & Util.java. & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git add Hello.java ~/my-prog 42. Software Engineering. & Util.java.
(43) HEAD. 9ad66d3 tree. & Hello.java. master parent. f146864 tree. index. & Hello.java. & Hello.java. % lib. % lib. & Util.java. & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git add Hello.java ~/my-prog git commit -m "Add bye" 43. Software Engineering. & Util.java.
(44) HEAD. 9ad66d3. master parent. tree. & Hello.java. f146864 tree. parent. 153b94c. index. tree. & Hello.java. & Hello.java. % lib. % lib. & Util.java. & Util.java. % my-prog % .git & Hello.java % lib ~/my-prog git commit -m "Add bye" [master 153b94c] Add bye 1 file changed, 1 insertions (+) 44 Software Engineering. & Util.java.
(45) Demo (init, status, diff, add (-‐p), diff -‐-‐ staged, checkout, commit, log). Software Engineering.
(46) Die wichtigsten Befehle (1 / 4) }. }. git help Liste wichtiger Befehle. }. Arbeitskopie → Index. git help command. }. Hilfe zu einzelnen Befehlen. }. git init Neues Repository initialisieren. 46. git add git checkout Index → Arbeitskopie. }. git commit Index → Repository. Software Engineering.
(47) Die wichtigsten Befehle (2 / 4) }. }. git status Informationen zur Arbeitskopie und HEAD anzeigen. }. git show commit. Arbeitskopie vs. Index. }. Informationen zu Commit zeigen. }. git reflog Entwicklung von HEAD zeigen. 47. git diff. git diff -‐-‐staged Index vs. Head. }. git log Änderungsgeschichte zeigen. Software Engineering.
(48) Branches & Merging. Software Engineering.
(49) ~/my-prog. 543. master. 49. Software Engineering. HEAD.
(50) ~/my-prog git add ~/my-prog. 543. master. 50. Software Engineering. HEAD.
(51) ~/my-prog git add ~/my-prog git commit ~/my-prog. parent. 543. 6f5. master. 51. Software Engineering. HEAD.
(52) ~/my-prog git add ~/my-prog git commit ~/my-prog git branch experiment ~/my-prog. experiment. parent. 543. 6f5. master. 52. Software Engineering. HEAD.
(53) ~/my-prog git add ~/my-prog git commit ~/my-prog git branch experiment ~/my-prog git checkout experiment. experiment. parent. 543. 6f5. master. 53. Software Engineering. HEAD.
(54) ~/my-prog git checkout experiment ~/my-prog. HEAD. parent. 543. experiment. 6f5. master. 54. Software Engineering.
(55) ~/my-prog git checkout experiment ~/my-prog git add ~/my-prog. HEAD. parent. 543. experiment. 6f5. master. 55. Software Engineering.
(56) ~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog. HEAD. experiment. parent parent. 543. b43. 6f5. master. 56. Software Engineering.
(57) ~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog. HEAD. experiment. parent parent. 543. b43. 6f5. master. 57. Software Engineering.
(58) ~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog. HEAD. experiment. parent parent. 543. b43. parent. aa4. 6f5. master. 58. Software Engineering.
(59) ~/my-prog git checkout experiment ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog git checkout master. HEAD. experiment. parent parent. 543. b43. parent. aa4. 6f5. master. 59. Software Engineering.
(60) ~/my-prog git checkout master ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5. master. 60. Software Engineering. HEAD.
(61) ~/my-prog git checkout master ~/my-prog git add ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5. master. 61. Software Engineering. HEAD.
(62) ~/my-prog git checkout master ~/my-prog git add ~/my-prog git commit ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5 parent. c85 master. 62. Software Engineering. HEAD.
(63) ~/my-prog git checkout master ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5 parent. c85 master. 63. Software Engineering. HEAD.
(64) ~/my-prog git checkout master ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5 parent. c85. parent. 3be master. 64. Software Engineering. HEAD.
(65) ~/my-prog git checkout master ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog git merge experiment. experiment. parent parent. 543. b43. parent. aa4. 6f5 parent. c85. parent. 3be master. 65. Software Engineering. HEAD.
(66) ~/my-prog git merge experiment ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5. parent. a23 parent. c85. parent. 3be. parent. master. 66. Software Engineering. HEAD.
(67) ~/my-prog git merge experiment ~/my-prog git add ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5. parent. a23 parent. c85. parent. 3be. parent. master. 67. Software Engineering. HEAD.
(68) ~/my-prog git merge experiment ~/my-prog git add ~/my-prog git commit ~/my-prog. experiment. parent parent. 543. b43. parent. aa4. 6f5. parent. a23 parent. c85. parent. 3be. Software Engineering. 153. parent. master. 68. parent. HEAD.
(69) Merge Konflikte } } } } }. Merge Konflikte treten auf, wenn die gleiche Datei in den beiden Branches auf konflingierende Weise geändert wurden. Führt zu Pausieren des Mergevorgangs Beide Änderungen sind in der Konfliktdatei enthalten Die Konfliktdatei muss manuell editiert werden Danach kann der Merge fortgesetzt werden <<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53:index.html 69. Software Engineering.
(70) Demo 2 (branch, checkout commit, merge, cherrypick, blame). Software Engineering.
(71) Die wichtigsten Befehle (3 / 4) }. }. git checkout commit Commit → Index / Arbeitskopie. }. git rm. }. Datei aus Index und Arbeitskopie löschen. }. git merge Mehrere Branches zusammenführen. git cherrypick Einzelnen Commit an aktuellen Branch dranhängen. git blame Letzte Änderung an Datei Zeile für Zeile anzeigen. 71. Software Engineering.
(72) Arbeiten im Team. Software Engineering.
(73) Verteilte Versionskontrolle mit Server }. Ein zentrales Repository ermöglicht vereinfachten Austausch Server Computer A Repository. Version 3. Repository. Version 3 .... Computer B Repository. Version 3. .... .... Working Copy. Working Copy. File 1. File 1. .... .... 73. Software Engineering.
(74) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 74. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(75) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 75. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(76) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 76. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(77) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 77. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(78) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 78. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(79) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 79. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(80) Begriffe }. Remote Repository }. }. Ein externes Repository im Netzwek / Internet }. Die lokale Kopie des Remote Repositories im eigenen Repo aktualisieren . Push }. 80. Remote Branch }. Fetch }. }. }. Die lokale Kopie des Remote Repositories zum externen Repo hochladen. Remote Tracking Branch }. }. Referenz auf einen Branch in einem Remote Repository. Remote Branch, welcher automatisch aktualisiert wird. Tracking Branch }. Lokale Kopie eines Remote Tracking Branches mit einer Referenz auf den "Upstream Branch". Software Engineering.
(81) ~/project git clone me@git.company.com:project. git.company.com parent. 543. master. 6f5. My Computer. 81. Software Engineering.
(82) ~/project git clone me@git.company.com:project ~/project. git.company.com parent. 543. master. 6f5. My Computer. origin/master parent. 543. HEAD. 6f5. master 82. Software Engineering.
(83) ~/project git add ~/project git commit ~/project git.company.com parent. 543. master. 6f5. My Computer. origin/master parent. 543. HEAD. 6f5. master 83. Software Engineering.
(84) ~/project git add ~/project git commit ~/project git.company.com parent. 543. master. 6f5. My Computer. origin/master parent. 543. 6f5. parent. c85. HEAD master. 84. Software Engineering.
(85) ~/project git add ~/project git commit ~/project git.company.com parent. 543. master. 6f5. My Computer. origin/master parent. 543. 6f5. parent. c85. parent. 3be. HEAD master. 85. Software Engineering.
(86) Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns git.company.com parent. 543. master. 6f5. My Computer. origin/master parent. 543. 6f5. parent. c85. parent. 3be. HEAD master. 86. Software Engineering.
(87) Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns git.company.com parent. 543. 6f5. parent. master. b43. My Computer. origin/master parent. 543. 6f5. parent. c85. parent. 3be. HEAD master. 87. Software Engineering.
(88) Jemand anderes arbeitet parallel und aktualisiert das Remote Repository vor uns git.company.com parent. 543. 6f5. parent. b43. parent. aa4. master. My Computer. origin/master parent. 543. 6f5. parent. c85. parent. 3be. HEAD master. 88. Software Engineering.
(89) ~/project git fetch ~/project. git.company.com parent. 543. 6f5. parent. b43. parent. aa4. master. My Computer. parent parent. 543. 6f5. parent. b43. c85. parent. parent. aa4. 3be. origin/master. HEAD master. 89. Software Engineering.
(90) ~/project git merge origin/master ~/project. git.company.com parent. 543. 6f5. parent. b43. parent. master. aa4. My Computer. parent parent. 543. 6f5. parent. b43. parent. origin/master. aa4 parent. c85. parent. 3be. parent. a23. HEAD master. 90. Software Engineering.
(91) ~/project git push origin master:master ~/project. git.company.com parent. 543. 6f5. parent. b43. parent. master. aa4 parent. parent. c85. parent. 3be. parent. a23. My Computer. parent parent. 543. 6f5. parent. b43. parent. origin/master. aa4 parent. c85. parent. 3be. parent. a23. HEAD master. 91. Software Engineering.
(92) Rebase Workflow. Software Engineering.
(93) ~/my-prog git checkout master ~/my-prog git add ~/my-prog git commit ~/my-prog git add ~/my-prog git commit ~/my-prog git checkout experiment. experiment. parent parent. 543. b43. parent. aa4. 6f5 parent. c85. parent. 3be master. 93. Software Engineering. HEAD.
(94) ~/my-prog git checkout experiment ~/my-prog git rebase master. HEAD. experiment. parent parent. 543. b43. parent. aa4. 6f5 parent. c85. parent. 3be master. 94. Software Engineering.
(95) ~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog. HEAD. experiment. f21 parent. 543. parent. 6f5 parent. c85. parent. 3be master. 95. Software Engineering. parent. 834.
(96) ~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog. experiment. f21 parent. 543. 834. parent. 6f5 parent. c85. parent. 3be master. 96. parent. Software Engineering. HEAD.
(97) ~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog git merge experiment. experiment. f21 parent. 543. 834. parent. 6f5 parent. c85. parent. 3be master. 97. parent. Software Engineering. HEAD.
(98) ~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog git merge experiment ~/my-prog. experiment. parent. 543. 6f5 parent. c85. parent. 3be. parent. f21. master. 98. Software Engineering. parent. 834. HEAD.
(99) ~/my-prog git checkout experiment ~/my-prog git rebase master ~/my-prog git checkout master ~/my-prog git merge experiment ~/my-prog git branch -d experiment ~/my-prog. parent. 543. 6f5 parent. c85. parent. 3be. parent. f21. master. 99. Software Engineering. parent. 834. HEAD.
(100) Demo 3 (clone, fetch, push, pull, rebase). Software Engineering.
(101) Die wichtigsten Befehle (4 / 4) }. git clone url Remote Repo → Lokales Repo. }. git fetch remote Remote Tracking Branches des lokalen Repos aktualisieren. }. git push remote branch Lokales Repo → Remote Repo. }. git pull Bei Tracking Branches: Abkürzung für git fetch; git merge. }. git rebase branch Die Commits vom aktuellen Branch in Diffs umwandeln und den angegebenen Branch als Basis verwenden. 101. Software Engineering.
(102) Probeklausur. Software Engineering.
(103) Tutorinnen & Tutoren gesucht für Info 1. Software Engineering.
(104)
ÄHNLICHE DOKUMENTE
All diese Objekte sind wieder aufgebaut worden - entsprechende Sicherstellungsdokumentationen hätten eine wertvolle Hilfe bieten.. Kopien ohne Gefährdung für die Originale
Original, Kopie und Fälschung im Recht 195 Thomas Dreier.
Der Gelderner Sommer macht’s möglich. August auf dem Gelderner Marktplatz, der sich an diesem Abend in die „Pi- azza da Antonello“ verwandelt. Und während man die Schalen-
IP: Herr Rogozin, seit den heftigen Auseinandersetzungen im Herbst 2008 hat sich das Verhältnis zwischen Russ- land und dem Westen wieder ent- spannt.. Russlands Präsident
9.5 Werden die Teilnehmer bei Nutzung einer PSA gegen Absturz in diese eingewiesen und der richtige Sitz durch eine verantwortliche Person überprüft.. ja
Bei der Verwendung von Sicherungssystemen die nicht durch die sicherheitstechnische Anleitung oder die praktische Beurteilung erfasst sind, müssen die Teilnehmer unter
Bitte beachten Sie, dass die von Ihnen bekanntgegebenen Daten ausschließlich zum Zweck der Durchführung der Mietzins- und Annuitätenbeihilfe im Referat für Wohnbau-Förderungen,
Although much of China’s drone research and development remains classified, Open Briefing has identified at least 46 different UAVs (plus variants) in use or in development by