You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

507 lines
10 KiB

  1. # Übung SCM
  2. ## 1. Staging Area
  3. ### 1. Ornder "UebungSCM" angelegt ("mkdir UebungSCM"), mit dem Befehl "git init" ein local repository in "UebungSCM" initialisiert
  4. ### 2. Datei "SCM.txt" ("touch SCM.txt") in dem Ordner erstellt und mit dem Befehl "nano" folgende Textzeilen hinzugefügt:
  5. > 1
  6. > 2
  7. > 3
  8. > hello
  9. > world
  10. > x
  11. ### 3. Status des Repository anzeigen lassen :
  12. > $ git status
  13. > On branch master
  14. >
  15. > No commits yet
  16. >
  17. > Untracked files:
  18. > (use "git add <file>..." to include in what will be committed)
  19. > SCM.txt
  20. >
  21. > nothing added to commit but untracked files present (use "git add" to track)
  22. ### 4. "SCM.txt" zur git Stage hinzufügen
  23. > $ git add "SCM.txt"
  24. >
  25. ### 5. aktuellen Status des Repository anzeigen
  26. > $ git status
  27. > On branch master
  28. > No commits yet
  29. >
  30. > Changes to be committed:
  31. > (use "git rm --cached <file>..." to unstage)
  32. > new file: SCM.txt
  33. ### 6. Änderungen in der Datei anzeigen
  34. > $ git diff
  35. >
  36. ### 7. einige weitere Zeilen in "SCM.txt einfügen
  37. > 1
  38. > 2
  39. > 3
  40. > hello
  41. > world
  42. > x
  43. > 5
  44. > 6
  45. > 7
  46. > 8
  47. > neun
  48. > zehn
  49. ### 8. aktuellen Status des Repository anzeigen
  50. > $ git status
  51. > On branch master
  52. >
  53. > No commits yet
  54. >
  55. > Changes to be committed:
  56. > (use "git rm --cached <file>..." to unstage)
  57. > new file: SCM.txt
  58. >
  59. > Changes not staged for commit:
  60. > (use "git add <file>..." to update what will be committed)
  61. > (use "git restore <file>..." to discard changes in working directory)
  62. > modified: SCM.txt
  63. >
  64. >
  65. ### 9. Änderungen in der Datei anzeigen
  66. > $ git diff
  67. > diff --git a/SCM.txt b/SCM.txt
  68. > index 8c721ef..87e597b 100644
  69. > --- a/SCM.txt
  70. > +++ b/SCM.txt
  71. > @@ -4,3 +4,9 @@
  72. > hello
  73. > world
  74. > x
  75. > +5
  76. > +6
  77. > +7
  78. > +8
  79. > +neun
  80. > +zehn
  81. >
  82. >
  83. ### 10. Einen commit erzeugen
  84. > $ git commit -m "SCM"
  85. > [master (root-commit) 888f529] SCM
  86. > 1 file changed, 6 insertions(+)
  87. > create mode 100644 SCM.txt
  88. >
  89. ### 11. Commit-ID identifizieren
  90. > [master (root-commit) 888f529] SCM
  91. > $ git show 888f529
  92. > commit 888f5299d207085f201038b048e4e1a99503585f
  93. ### 12. Zeigen sie die Änderung in der Datei an
  94. > $ git diff
  95. > diff --git a/SCM.txt b/SCM.txt
  96. > index 8c721ef..87e597b 100644
  97. > --- a/SCM.txt
  98. > +++ b/SCM.txt
  99. > @@ -4,3 +4,9 @@
  100. > hello
  101. > world
  102. > x
  103. > <span style="color:green">some *+5* text</span>
  104. > +6
  105. > +7
  106. > +8
  107. > +neun
  108. > +zehn
  109. >
  110. >
  111. ## Staging Area
  112. ### 1. Datei auf den Stand in der Stage zurücksetzen
  113. > $ git reset --hard 888f5299d207085f201038b048e4e1a99503585f
  114. > HEAD is now at 888f529 SCM
  115. >
  116. ### 2. Aktueller Status des Repository
  117. > $ git status
  118. > On branch master
  119. > nothing to commit, working tree clean
  120. >
  121. ### 3. Änderungen in der Datei anzeigen
  122. > $ git diff
  123. >
  124. ### 4. Änderungen aus der Stage entfernen ohne die Datei zurückzusetzen
  125. > git checkout -- SCM.txt
  126. > Updated 0 paths from the Index
  127. >
  128. ### 5. Aktueller Status des Repository
  129. > $ git status
  130. > On branch master
  131. > nothing to commit, working tree clean
  132. >
  133. ### 6. Änderungen in der Datei anzeigen
  134. > $ git diff
  135. >
  136. ### 7. Datei auf den Stand im commit zurücksetzen
  137. > $ git revert HEAD
  138. > [master b4e7271] Revert "SCM"
  139. > 1 file changed, 6 deletions(-)
  140. > delete mode 100644 SCM.txt
  141. ### 8. Status des Repository
  142. > $ git status
  143. > On branch master
  144. > nothing to commit, working tree clean
  145. >
  146. ## Branching - Anlegen
  147. ### 1. Zeilen zur Datei "SCM.txt" hinzufügen (nano SCM.txt) und die Änderung comitten. Commit-Message : "main1"
  148. > $ git commit -m "master1"
  149. > [master 938ffec] master1
  150. > 1 file changed, 2 insertions(+)
  151. > create mode 100644 SCM.txt
  152. >
  153. ### 2. Schritt 1 Wiederholen. Commit-Message : "master2"
  154. > $ git commit -m "master2"
  155. > [master 91cb85a] master2
  156. > 1 file changed, 6 insertions(+), 2 deletions(-)
  157. >
  158. ### 3. Weitere Textdatei "testSCM.txt" anlegen, zur Stage hinzufügen und comitten
  159. > $ git commit -m "testSCM hinzugefuegt"
  160. > [master 09c235a] testSCM hinzugefuegt
  161. > 1 file changed, 0 insertions(+), 0 deletions(-)
  162. > create mode 100644 testSCM.txt
  163. >
  164. ### 4. Neuen Branch "test1" erzeugen
  165. > $ git branch "test1"
  166. >
  167. - und zu diesem wechseln
  168. > $ git checkout "test1"
  169. > Switched to branch 'test1 '
  170. >
  171. ### 5. Weiter Zeilen in die erste Datei "SCM.txt" einfügen und committen
  172. > $ git commit -m "test1Commit1"
  173. > [test1 2e0aea7] test1Commit1
  174. > 1 file changed, 4 insertions(+)
  175. >
  176. ### 6. Schritt 5 Wiederholen
  177. > $ git commit -m "test1Commit2"
  178. > [test1 539ef41] test1Commit2
  179. > 1 file changed, 4 insertions(+)
  180. >
  181. ### 7. Commit-ID merken
  182. > commit 539ef4193e4bf79a6e8d54d46f8506998192a2d8
  183. > test1 539ef41
  184. >
  185. ### 8. Weitere Zeilen in die zweite Datei "testSCM.txt" einfügen (nano "testSCM")
  186. ### 9. Änderungen zur git Stage hinzufügen (git add "testSCM.txt")
  187. ### 10. Aktueller Status des Repository
  188. > $ git status
  189. > On branch test1
  190. > Changes to be committed:
  191. > (use "git restore --staged <file>..." to unstage)
  192. > modified: testSCM.txt
  193. >
  194. ### 11. Weitere Zeilen zu "testSCM.txt" hinzufügen
  195. ## Branching - Zweige wechseln 1
  196. ### 1. Zum Branch "master" wechseln
  197. > git checkout "master"
  198. ### 2. Aktueller Status des Repository
  199. > $ git status
  200. > On branch master
  201. > Changes to be committed:
  202. > (use "git restore --staged <file>..." to unstage)
  203. > modified: testSCM.txt
  204. >
  205. - alt:
  206. > $ git status
  207. > On branch master
  208. > nothing to commit, working tree clean
  209. >
  210. ### 3. Branch wechseln zu "test1"
  211. > $ git checkout "test1"
  212. >
  213. ### 4. Neuen Branch erzeugen "test2"
  214. > & git branch "test2"
  215. >
  216. ## Branching - Zweige Wechseln 2
  217. ### 1. Aktuellen Branch auf den Stand des Branches "master" zurücksetzen
  218. > $ git reset --hard "2e0aea7"
  219. >
  220. ### 2. Status des Repository anzeigen
  221. > $ git status
  222. > On branch test1
  223. > nothing to commit, working tree clean
  224. >
  225. ### 3. Neue Zeilen in der ersten Datei "SCM.txt" hinzufügen ohne commit
  226. ### 4. Auf den Branch "test2" wechseln
  227. > $ git checkout test2
  228. > error: Your local changes to the following files would be overwritten by checkout:
  229. > SCM.txt
  230. > Please commit your changes or stash them before you switch branches.
  231. > Aborting
  232. >
  233. ### 5. Warum schlägt das fehl?
  234. - Da die Änderungen an meiner Datei sonst überschrieben werden würden. Man muss zuerst die aktuelle Version der Datei
  235. committen oder zur Stash hinzufügen, sonst bricht Git den Versuch, den Branch zu wechseln ab.
  236. ### 6. Änderungen in die Stage übernehmen
  237. > $ git commit -m "master3"
  238. >
  239. ### 7. Branch lässt sich wechseln
  240. ### 8. Wechsel auf den Branch "test2"
  241. > git checkout "test2"
  242. >
  243. ### 9. Branch "test1" in "test3" umbenennen
  244. > $ git branch -m "test1" "test3"
  245. ## Historie - Anzeigen 1
  246. ### 1. Auf Branch "test3" wechseln
  247. > $ git checkout "test3"
  248. >
  249. ### 2. Historie anzeigen lassen
  250. > $ git log
  251. > commit f68024ec473989ad16ef5c3e60deca3e27da199f (HEAD -> test3, test2)
  252. > Author: HV <123>
  253. > Date: Sun Nov 19 17:16:37 2023 +0100
  254. >
  255. > test1Commit1
  256. >
  257. > commit 9380ec4ee992866ca2a06af022d665eed8918ab0
  258. > Author: HV <123>
  259. > Date: Sun Nov 19 17:16:15 2023 +0100
  260. >
  261. > test1Commit1
  262. >
  263. > commit 74660af0098e5ea03e23dc3b611deb26ef6022a4 (master)
  264. > Author: HV <123>
  265. > Date: Sun Nov 19 17:12:40 2023 +0100
  266. >
  267. > testSCM hinzugefuegt
  268. >
  269. > commit 93adc2aaf180b9e8d7f143d81e460d8692bb2aaa
  270. > Author: HV <123>
  271. > Date: Sun Nov 19 17:09:48 2023 +0100
  272. >
  273. > main2
  274. >
  275. ### 3. Informationen über den commit
  276. - Author, Uhrzeit, Datum, Commit-Message, Commit-Hash
  277. ### 4. Nur den aktuellen Commit anzeigen (-1)
  278. > $ git log -1
  279. > commit f68024ec473989ad16ef5c3e60deca3e27da199f (HEAD -> test3, test2)
  280. > Author: HV <123>
  281. > Date: Sun Nov 19 17:16:37 2023 +0100
  282. >
  283. > test1Commit1
  284. ### 5. Vereinfachte Historie
  285. > $ git log --oneline
  286. > f68024e (HEAD -> test3, test2) test1Commit1
  287. > 9380ec4 test1Commit1
  288. > 74660af (master) testSCM hinzugefuegt
  289. > 93adc2a main2
  290. > b93db03 main1
  291. > 979512c SCM
  292. >
  293. ### 6. Informationen über einen Commit
  294. - Commit-Message und ID werden ausgegeben
  295. ### 7. Anzahl der Branches
  296. - 3
  297. ### 8. Komplette vereinfachte Historie
  298. > $ git log --oneline --all
  299. > 7a29ba9 (test1) master3
  300. > f68024e (HEAD -> test3, test2) test1Commit1
  301. > 9380ec4 test1Commit1
  302. > 74660af (master) testSCM hinzugefuegt
  303. > 93adc2a main2
  304. > b93db03 main1
  305. > 979512c SCM
  306. >
  307. ### 9. Anzahl der Branches in der komplett vereinfachten Historie
  308. - 4
  309. ### 10. Wo befindet sich die Markierung HEAD
  310. - HEAD -> test3, test2
  311. ### 11. Auf Branch "test2" wechseln
  312. > $ git checkout "test2"
  313. > Switched to branch "test2"
  314. >
  315. ### 12. Vereinfachte Historie ohne (--all) anzeigen
  316. > $ git log --oneline
  317. > f68024e (HEAD -> test2, test3) test1Commit1
  318. > 9380ec4 test1Commit1
  319. > 74660af (master) testSCM hinzugefuegt
  320. > 93adc2a main2
  321. > b93db03 main1
  322. > 979512c SCM
  323. >
  324. ### 13. Mit Ergebnis von Schritt 7 vergleichen
  325. - gleich
  326. ## Historie Anzeigen 2
  327. ### 1. Wechseln auf Branch "test3"
  328. > $ git checkout "test3"
  329. > Switched to branch 'test3'
  330. >
  331. ### 2. Weitere Zeile in der ersten Datei hinzufügen und comitten
  332. > $ git commit -m "test3Commit1"
  333. > [test3 7074e81] test3Commit1
  334. > 1 file changed, 3 insertions(+)
  335. >
  336. ### 3. Schritt 2 drei Mal wiederholen
  337. > $ git commit -m "test3Commit2"
  338. > [test3 2440b20] test3Commit2
  339. > 1 file changed, 1 insertion(+)
  340. > $ git commit -m "test3Commit3"
  341. > [test3 2e428f4] test3Commit3
  342. > 1 file changed, 1 insertion(+)
  343. > $ git commit -m "test3Commit4"
  344. > [test3 1ae6afe] test3Commit4
  345. > 1 file changed, 1 insertion(+)
  346. ### 4. Vereinfachte Historie ohne (--all)
  347. > $ git log --oneline
  348. > 1ae6afe (HEAD -> test3) test3Commit4
  349. > 2e428f4 test3Commit3
  350. > 2440b20 test3Commit2
  351. > 7074e81 test3Commit1
  352. > f68024e (test2) test1Commit1
  353. > 9380ec4 test1Commit1
  354. > 74660af (master) testSCM hinzugefuegt
  355. > 93adc2a main2
  356. > b93db03 main1
  357. > 979512c SCM
  358. >
  359. ### 5. Ergebnis mit Schritt 5 vergleichen
  360. - HEAD ist jetzt nur auf "test3" und die neuen commits, wurden in der Historie ergänzt
  361. ### 6. Komplette verinfachte Historie anzeigen mit (--all)
  362. > $ git log --oneline --all
  363. > 1ae6afe (HEAD -> test3) test3Commit4
  364. > 2e428f4 test3Commit3
  365. > 2440b20 test3Commit2
  366. > 7074e81 test3Commit1
  367. > 7a29ba9 (test1) master3
  368. > f68024e (test2) test1Commit1
  369. > 9380ec4 test1Commit1
  370. > 74660af (master) testSCM hinzugefuegt
  371. > 93adc2a main2
  372. > b93db03 main1
  373. > 979512c SCM
  374. >
  375. ### 7. Mit Schrit 8 vergleichen
  376. - HEAD ist jetzt auf "test3", die letzten drei commits wurden ergänzt