Forum: PC-Programmierung Einstieg in Git


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Matthias S. (da_user)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich möchte mich jetzt endlich mal mit dem Thema Git beschäftigen. 
Demnächst werde ich wohl einen kleinen Homserver haben, auf dem ich 
Docker-Container installieren kann. Derzeit läuft das ganze noch 
experimentell in der virtuellen Maschine.
Auf jeden Fall würde ich dann einen eigenen Docker-Git-Server aufsetzen 
um GitHub nicht mit meinem Geraffel vollzumüllen.

Was ich derzeit aber suche, ist eine gute(!) idealerweise 
deutschsprachige Anleitung/Einstiegslektüre/Tutorial zum Thema Git.

Wenns noch weiterhilft: meine bevorzugte Entwicklungsumgebung ist Visual 
Studio Community Edition.

Vielleicht kann mir da wer was gutes Empfehlen?

VG

von Nop (Gast)


Bewertung
4 lesenswert
nicht lesenswert
Ein Standardwerk ist https://git-scm.com/book/en/v2 . Teilweise wohl auf 
deutsch übersetzt, aber bei technischer Literatur gewöhn Dir besser 
gleich an, das auf englisch zu lesen.

von Chris K. (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Eigentlich ist Git ganz einfach:

In Case of Fire:
1. Git Commit
2. Git Push
3. Leave Buildig

von Matthias S. (da_user)


Bewertung
0 lesenswert
nicht lesenswert
Nop schrieb:
> eilweise wohl auf
> deutsch übersetzt, aber bei technischer Literatur gewöhn Dir besser
> gleich an, das auf englisch zu lesen.

Ja... habe ich mir prinzipiell schon angewöhnt.
Aber gerade für die allerersten Schritte ist was in der Muttersprache 
meistens doch besser, bzw. von mir bevorzugt.

Darum auch "idealerweise" ;-)

Danke für den Link.

von guest (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nop schrieb:
> Ein Standardwerk ist https://git-scm.com/book/en/v2 . Teilweise wohl auf
> deutsch übersetzt, aber bei technischer Literatur gewöhn Dir besser
> gleich an, das auf englisch zu lesen.

Die deutsche Version ist "Translations started":
https://git-scm.com/book/de/v2
Auf den ersten Blick sind wohl Kapitel 1 & 4 in deutsch.

Ansonsten hat Nop recht, besser gleich das englische Original nehmen.

von Horst (Gast)


Bewertung
-6 lesenswert
nicht lesenswert
Matthias S. schrieb:
> meine bevorzugte Entwicklungsumgebung ist Visual
> Studio Community Edition.

Und warum nicht was vernünftiges?


Die erste Auflage des oben verlinkten Buchs ist komplett auf Deutsch:
https://git-scm.com/book/de/v1

von Borislav B. (boris_b)


Bewertung
-4 lesenswert
nicht lesenswert
Horst schrieb:
> Und warum nicht was vernünftiges?

Weil's einfach gut ist. "Vernünftiger" geht es kaum :-)

Beitrag #5400853 wurde von einem Moderator gelöscht.
von Matthias S. (da_user)


Bewertung
3 lesenswert
nicht lesenswert
Horst schrieb:
>> meine bevorzugte Entwicklungsumgebung ist Visual
>> Studio Community Edition.
>
> Und warum nicht was vernünftiges?

Und warum nie rausrücken, was daran unvernünftig/schlecht ist, besseres 
Vorschlagen und begründen warum?

Beitrag #5400898 wurde von einem Moderator gelöscht.
Beitrag #5400905 wurde von einem Moderator gelöscht.
Beitrag #5400917 wurde von einem Moderator gelöscht.
Beitrag #5400918 wurde von einem Moderator gelöscht.
Beitrag #5400938 wurde von einem Moderator gelöscht.
von Konrad (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Chris  K. schrieb:
> Eigentlich ist Git ganz einfach:
>
> In Case of Fire:
> 1. Git Commit
> 2. Git Push
> 3. Leave Buildig

Nicht ganz so einfach: da fehlt

0) git add -A

Siehe auch
https://git-man-page-generator.lokaltog.net/

(git ist ein schrulliges Werkzeug, zu dem man wunderbar eine Hassliebe 
pflegen kann)

von ~Mercedes~ (Gast)


Bewertung
-4 lesenswert
nicht lesenswert
Horst meinte:

> Und warum nicht was vernünftiges?

Was hast Du gegen Microsoft? ;--P

Windows ist professionell, keine Frikelware.
Und es hilft der darbenden deutschen Kofferindustrie,
wie wir ja in München sehen konnten. ;-))

mfg

von foo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Konrad schrieb:
> (git ist ein schrulliges Werkzeug, zu dem man wunderbar eine Hassliebe
> pflegen kann)

Jo und damit auch nix schiefgeht, gibts coole features:

https://blog.sebastian-daschner.com/entries/custom-git-subcommands

von Matthias S. (da_user)


Bewertung
1 lesenswert
nicht lesenswert
Horst schrieb im Beitrag #5400938:
> Matthias S. schrieb im Beitrag #5400918:
>> Dann weiß ich ja, wo ich
>> deine Aussagen einsortieren darf:
>>
>> Borislav B. schrieb:
>>> Horst schrieb:
>>>> Witzbold.
>>>
>>> Dummschwätzer...
>
> Da kannste dich selbst einsortieren. Egal was ich erwähnen würde, ihr
> MS-Trolle würdet es sofort schlecht machen.

Ich hätte mich eigentlich schon dafür interessiert, was du vorgeschlagen 
hättest, und warum du es besser findest. Ob ich es auch besser gefunden 
hätte, bzw. ob es mir einen Umstieg wert gewesen wäre, steht natürlich 
auf einem anderen Blatt. Aber da spielt natürlich auch etwas persönliche 
Vorliebe mit...
Aber mit einem dahingerotzten pauschalisierten Satz wüsste ich nicht, 
was ich anderes damit anfangen soll, oder was meinst du?

von Egon N. (egon2321)


Bewertung
1 lesenswert
nicht lesenswert
Gibt für GIT einige gute Cheat Sheets, such einfach mal danach, da 
findet sich so einiges.

In deinem Fall dürfte das vermutlich auf Gitlab hinauslaufen, Visual 
Studio wird in der Hilfefunktion vermutlich eh die Einbindung einer 
Versionsverwaltung erklären.

Wobei ich persönlich so etwas nicht zwingend selbst hosten würde, für 
ein paar private Projekte reicht auch Github/Bitbucket (erlaubt private 
Repos), da muss man dann nicht am Server rumfrickeln und hat es von 
überall erreichbar. Backups kann man sich auch bequem mittels Skript auf 
den NAS ziehen lassen.

von Johann L. (gjlayde) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Chris  K. schrieb:
> Eigentlich ist Git ganz einfach:
>
> In Case of Fire:
> 1. Git Commit
> 2. Git Push
> 3. Leave Buildig

4. Nighmares due to missing: 0. Git Add

von foobar (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Nur zur Info: nen Server brauchst du bei Git eigentlich nicht, nichtmal 
einen lokalen zentralen Speicher.  Git ist mit einem Unterverzeichnis im 
Arbeitsverzeichnis vollkommen zufrieden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
3 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Ich hätte mich eigentlich schon dafür interessiert, was du vorgeschlagen
> hättest, und warum du es besser findest.

Ehrliche Meinung: Mercurial.  Einfach, weil dort die Kommandos noch
einigermaßen so sind, wie sie bei anderen VCSen zuvor (RCS, CVS, SVN)
auch waren.  Bei Git ist schlicht alles anders.

Von vielen Konzepten sind sich Git und Mercurial ansonsten durchaus
ähnlich.  Git hat'n paar Knöppe mehr. :)

Ansonsten ist natürlich jegliche Versionierung besser als gar keine.
RCS oder CVS würde ich allerdings heutzutage wirklich keinem mehr
empfehlen.

von asd (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Ich hab die ersten Schritte mit dieser Webseite gemacht:

https://rogerdudler.github.io/git-guide/index.de.html

Anmerkung:
Wenn man das entfernte Repository mit "git init" erstellt hat bekommt 
man eine Fehlermeldung wenn man rein "push"en will, weil das entfernte 
Respository dazu "bare" sein muss, d.h. es hat selber keine ausgecheckte 
working copy.
Damit es geht, erstellt man das leere entfernte Repository mit
"git init --bare"
Das ist hier erklärt:
https://stackoverflow.com/questions/11117823/git-push-error-refusing-to-update-checked-out-branch

von Sheeva P. (sheevaplug)


Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> ich möchte mich jetzt endlich mal mit dem Thema Git beschäftigen.
> [...]
> Wenns noch weiterhilft: meine bevorzugte Entwicklungsumgebung ist Visual
> Studio Community Edition.

Unabhängig von einer IDE würde ich Dir empfehlen, Deine ersten Schritte 
mit Git -- zum Beispiel beim Durcharbeiten eines der verlinkten Bücher 
-- nicht mit einer IDE zu machen, sondern tatsächlich auf der 
Kommandozeile. Dadurch gewinnst Du nicht nur viel bessere Einblicke und 
Erkenntnisse bezüglich der Funktionsweise und der Möglichkeiten von Git, 
sondern lernst obendrein auch noch, was Du tun kannst, wenn einmal etwas 
schief gelaufen ist.

von DPA (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Ich würde ebenfalls empfehlen, git manuell zu bedienen. Mein Ablauf ist 
für gewöhnlich ungefähr so:
# Letzte änderungen vom server holen
git pull

# änderungen machen

# tests laufen lassen

# nachsehen, welche Dateien sich geändert haben
git status

# Dateien, die nicht ins Projekt gehören, in die .gitignore eintragen (einige ignorieren einfach alles, und nutzen "git add -f datei" bei neuen Dateien, damit sie immer bedenkenlos git add -A machen können, finde ich aber unschön)
echo '*.o' >> .gitignore
echo 'build/' >> .gitignore

# Änderungen ansehen
git diff

git add -A oder git add datei # Änderungen an Dateien für nächsten Commit zwischenspeichern

# eventuell wieder am Anfang anfangen, falls man auf den neuesten Commit aufbauen will und keinen merge commit will, falls ein neuer auf dem Server gekommen ist. Kann aber umständlich sein.

# optional einen anderen temporären branch erstellen
git checkout -b branchname

# Alle Änderungen nochmal betrachten vor dem Commit
git diff --cached

# Änderungen in lokaler Versionshistorie speichern
git commit -m "Hinzufügen von Feature XY, see #1234"

# Vorherigen Branch wieder auschecken, falls neuer erstellt
git checkout master

# neueste Änderungen nochmal holen
git pull

# Falls man einen neuen Branch erstellt hatte, eigene Commits nochmal einbauen. Meistens genügt
git cherrypick <die commits>

# Mögliche merge conflicts beheben

# Tests durchlaufen lassen

# Gemergete änderungen committen
git commit -m "Merge bla bla"

# änderungen hochladen
git push

# Falls man zu langsam war, wieder zurück zum schritt "git pull". Oder eventuell mit git reset letzten merge zurücksetzen und zurück zum schritt "git checkout master"

# Falls man einen temporären branch erstellt hatte, diesen optional löschen
git branch -d branchname

# fertig, zurück zum anfang

Manchmal schaue ich noch mit "git log", "git diff" und "git blame", wer 
wo was kaputt gemacht hat.

von Matthias S. (da_user)


Bewertung
0 lesenswert
nicht lesenswert
Ja genau sowas suche ich eben nicht! ;-)
Merge, Commit, Branch,... usw. usf. sind einfach Begriffe, die mir bis 
dato noch gar nix sagen. Ich muss in Sachen Versionskontrolle mehr oder 
weniger bei 0 anfangen.

Jörg W. schrieb:
>> Ich hätte mich eigentlich schon dafür interessiert, was du vorgeschlagen
>> hättest, und warum du es besser findest.
>
> Ehrliche Meinung: Mercurial.  Einfach, weil dort die Kommandos noch
> einigermaßen so sind, wie sie bei anderen VCSen zuvor (RCS, CVS, SVN)
> auch waren.  Bei Git ist schlicht alles anders.

Danke.

von Le X. (lex_91)


Bewertung
1 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Merge, Commit, Branch,... usw. usf. sind einfach Begriffe, die mir bis
> dato noch gar nix sagen. Ich muss in Sachen Versionskontrolle mehr oder
> weniger bei 0 anfangen.

Die gleich in der ersten Antwort verlinkte Doku 
https://git-scm.com/book/en/v2
kann ich uneingeschränkt weiterempfehlen.
Da wird dir alles von der Pike auf eingeimpft.
Schön mit Beispielen, UseCases (wann wähle ich welches Vorgehen?) und 
ganz genaue Erklärungen und Fallstricke.
Da wird das Thema Versionsverwaltung praktisch ab Adam und Eva 
behandelt.

Wenn dir diese Doku (eigentlich ein Mix aus Doku und Tutorial) nicht 
zusagt, tja, was besseres wirst du nicht finden.

von Matthias S. (da_user)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

Wie ist den da V1 vs. V2 zueinander zu bewerten?
Insbesondere was die absoluten Basics angeht?

: Bearbeitet durch User
von Martin H. (horo)


Bewertung
0 lesenswert
nicht lesenswert
Kannst ja mal nach "GIT Lernen mit Beispielen" von Xtreme Software GmbH 
suchen, findet sich als pdf-Download im Internet.
Ist 'ne Schritt-für-Schritt-Anleitung, die die Zusammenhänge auch 
graphisch erläutert.

von Nobody (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Wenn schon Microsoft warum dann nicht den Team Foundation Server?

von Cyblord -. (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Nobody schrieb:
> Wenn schon Microsoft warum dann nicht den Team Foundation Server?

TFS ist schon ein bisschen mehr als nur Versionsverwaltung. Der dortige 
Standard ist nun aber auch Git. TFVC wird afair nicht weiter entwickelt.

Für nur VC ist TFS ist zu fett zu managen, aber wenn man die restlichen 
Features ebenfalls nutzt (allen voran Work Item Tracking), dann kann man 
damit wirklich gut und professionell arbeiten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.