• Keine Ergebnisse gefunden

Software  Engineering
 8.  Version  Control  with  Git

N/A
N/A
Protected

Academic year: 2022

Aktie "Software  Engineering
 8.  Version  Control  with  Git"

Copied!
103
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Software  Engineering 8.  Version  Control  with  Git Jonathan  Brachthäuser. Software  Engineering.

(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)

Referenzen

Ä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