Hier sind alle Git-Befehle, die ich letzte Woche verwendet habe, und was sie tun.

Wie die meisten Neulinge begann ich damit, StackOverflow nach Git-Befehlen zu durchsuchen und dann Antworten zu kopieren, ohne wirklich zu verstehen, was sie taten.

Ich erinnere mich, dass ich gedacht habe:"Wäre es nicht schön, wenn es eine Liste der häufigsten Git-Befehle sowie eine Erklärung geben würde, warum sie nützlich sind?"

Nun, hier bin ich Jahre später, um eine solche Liste zusammenzustellen und einige Best Practices zu erstellen, die selbst fortgeschrittene Entwickler nützlich finden sollten.

Um die Dinge praktisch zu halten, stütze ich diese Liste auf die tatsächlichen Git-Befehle, die ich in der letzten Woche verwendet habe.

Fast jeder Entwickler verwendet Git und höchstwahrscheinlich GitHub. Aber der durchschnittliche Entwickler verwendet diese drei Befehle wahrscheinlich nur 99% der Zeit:

git add --allgit commit -am ""git push origin master

Das ist alles schön und gut, wenn Sie in einem Ein-Personen-Team, einem Hackathon oder einer Wegwerf-App arbeiten, aber wenn Stabilität und Wartung Priorität haben, das Aufräumen von Commits, das Festhalten an einer Verzweigungsstrategie und das Schreiben Kohärente Commit-Nachrichten werden wichtig.

Ich beginne mit der Liste der häufig verwendeten Befehle, um Neulingen das Verständnis der Möglichkeiten von Git zu erleichtern, und gehe dann zu den erweiterten Funktionen und Best Practices über.

Regelmäßig verwendete Befehle

Um Git in einem Repository (Repo) zu initialisieren, müssen Sie nur den folgenden Befehl eingeben. Wenn Sie Git nicht initialisieren, können Sie keine anderen Git-Befehle in diesem Repo ausführen.

git init

Wenn Sie GitHub verwenden und Code in ein online gespeichertes GitHub-Repo übertragen, verwenden Sie ein Remote- Repo. Der Standardname (auch als Alias ​​bezeichnet) für dieses Remote-Repo ist origin . Wenn Sie ein Projekt von Github kopiert haben, hat es bereits einen Ursprung . Sie können diesen Ursprung mit dem Befehl git remote -v anzeigen , der die URL des Remote-Repos auflistet.

Wenn Sie Ihr eigenes Git-Repo initialisiert haben und es einem GitHub-Repo zuordnen möchten, müssen Sie eines auf GitHub erstellen, die angegebene URL kopieren und den Befehl git remote add origin verwendenRL>, wobei die von GitHub bereitgestellte URL "" ersetzt. Von dort aus können Sie Ihr Remote-Repo hinzufügen, festschreiben und verschieben.

Der letzte wird verwendet, wenn Sie das Remote-Repository ändern müssen. Angenommen, Sie haben ein Repo von einer anderen Person kopiert und möchten das Remote-Repository vom ursprünglichen Eigentümer in Ihr eigenes GitHub-Konto ändern. Befolgen Sie den gleichen Vorgang wie bei git remote add origin , verwenden Sie jedoch stattdessen set-url , um das Remote-Repo zu ändern.

git remote -vgit remote add origin git remote set-url origin 

Die häufigste Methode zum Kopieren eines Repos ist die Verwendung eines Git-Klons, gefolgt von der URL des Repos.

Beachten Sie, dass das Remote-Repository mit dem Konto verknüpft wird, von dem Sie das Repo geklont haben. Wenn Sie also ein Repo geklont haben, das jemand anderem gehört, können Sie erst dann auf GitHub pushen, wenn Sie den Ursprung mit den obigen Befehlen ändern .

git clone 

Sie werden schnell feststellen, dass Sie Zweige verwenden. Wenn Sie nicht verstehen, was Zweige sind, gibt es andere Tutorials, die viel ausführlicher sind, und Sie sollten diese lesen, bevor Sie fortfahren (hier ist eines).

Der Befehl git branch listet alle Zweige auf Ihrem lokalen Computer auf. Wenn Sie einen neuen Zweig erstellen möchten, können Sie den Git-Zweig verwendenme>, wobei & lt; name> den Namen des Zweigs darstellt, z. B. "master".

Die Git-KasseDer Befehl me> wechselt zu einem vorhandenen Zweig. Sie können auch den Befehl git checkout -b & lt; name> verwenden, um einen neuen Zweig zu erstellen und sofort zu diesem zu wechseln. Die meisten Benutzer verwenden dies anstelle von separaten Verzweigungs- und Checkout-Befehlen.

git branchgit branch git checkout git checkout -b 

Wenn Sie eine Reihe von Änderungen an einem Zweig vorgenommen haben, nennen wir es „entwickeln“, und Sie wollen diesen Zweig zurück in Ihre fusionieren Master Zweig, verwenden Sie den git merge

Befehl ch>. Sie werden wa nt ch den Master - Zweig eckout, die git merge d n run evelop zu verschmelzen in den Hauptzweig zu entwickeln.

git merge 

Wenn Sie mit mehreren Personen arbeiten, befinden Sie sich in einer Position, in der ein Repo auf GitHub aktualisiert wurde, die Änderungen jedoch lokal nicht vorhanden sind. In diesem Fall können Sie den Git-Pull-Ursprung verwenden

ch>, um die letzten Änderungen aus diesem Remote-Zweig abzurufen.

git pull origin 

Wenn Sie neugierig sind, welche Dateien geändert wurden und was verfolgt wird, können Sie den Git-Status verwenden . Wenn Sie sehen möchten, wie stark jede Datei geändert wurde, können Sie mit git diff die Anzahl der in jeder Datei geänderten Zeilen anzeigen.

git statusgit diff --stat

Erweiterte Befehle und Best Practices

Bald erreichen Sie einen Punkt, an dem Ihre Commits gut aussehen und konsistent bleiben sollen. Möglicherweise müssen Sie auch mit Ihrem Commit-Verlauf herumspielen, um das Verständnis Ihrer Commits zu erleichtern oder eine versehentliche Änderung rückgängig zu machen.

Mit dem Befehl git log können Sie den Commit-Verlauf anzeigen. Sie möchten dies verwenden, um den Verlauf Ihrer Commits anzuzeigen.

Ihre Commits werden mit Nachrichten und einem Hash geliefert , der aus einer zufälligen Reihe von Zahlen und Buchstaben besteht. Ein Beispiel-Hash könnte folgendermaßen aussehen: c3d882aa1aa4e3d5f18b3890132670fbeac912f7

git log

Angenommen, Sie haben etwas gepusht, das Ihre App beschädigt hat. Anstatt es zu reparieren und etwas Neues zu pushen, gehen Sie lieber ein Commit zurück und versuchen es erneut.

Wenn Sie in der Zeit zurückgehen und Ihre App von einem vorherigen Commit auschecken möchten , können Sie dies direkt tun, indem Sie den Hash als Zweigstellennamen verwenden. Dadurch wird Ihre App von der aktuellen Version getrennt (da Sie einen historischen Datensatz anstelle der aktuellen Version bearbeiten).

git checkout c3d88eaa1aa4e4d5f

Wenn Sie dann Änderungen an diesem historischen Zweig vornehmen und erneut pushen möchten, müssen Sie einen Force-Push ausführen.

Achtung: Druck ausübenis dangerous and should only be done if you absolutely must. It will overwrite the history of your app and you will lose whatever came after.

git push -f origin master

Other times it’s just not practical to keep everything in one commit. Perhaps you want to save your progress before trying something potentially risky, or perhaps you made a mistake and want to spare yourself the embarrassment of having an error in your version history. For that, we have git rebase.

Let’s say you have 4 commits in your local history (not pushed to GitHub) in which you’ve gone back and forth. Your commits look sloppy and indecisive. You can use rebase to combine all of those commits into a single, concise commit.

git rebase -i HEAD~4

The above command will open up your computer’s default editor (which is Vim unless you’ve set it to something else), with several options for how you can change your commits. It will look something like the code below:

pick 130deo9 oldest commit messagepick 4209fei second oldest commit messagepick 4390gne third oldest commit messagepick bmo0dne newest commit message

In order to combine these, we need to change the “pick” option to “fixup” (as the documentation below the code says) to meld the commits and discard the commit messages. Note that in vim, you need to press “a” or “i” to be able to edit the text, and to save and exit, you need to type the escape key followed by “shift + z + z”. Don’t ask me why, it just is.

pick 130deo9 oldest commit messagefixup 4209fei second oldest commit messagefixup 4390gne third oldest commit messagefixup bmo0dne newest commit message

This will merge all of your commits into the commit with the message “oldest commit message”.

The next step is to rename your commit message. This is entirely a matter of opinion, but so long as you follow a consistent pattern, anything you do is fine. I recommend using the commit guidelines put out by Google for Angular.js.

In order to change the commit message, use the amend flag.

git commit --amend

This will also open vim, and the text editing and saving rules are the same as above. To give an example of a good commit message, here’s one following the rules from the guideline:

feat: add stripe checkout button to payments page
- add stripe checkout button- write tests for checkout

One advantage to keeping with the types listed in the guideline is that it makes writing change logs easier. You can also include information in the footer (again, specified in the guideline) that references issues.

Note: you should avoid rebasing and squashing your commits if you are collaborating on a project, and have code pushed to GitHub. If you start changing version history under people’s noses, you could end up making everyone’s lives more difficult with bugs that are difficult to track.

There are an almost endless number of possible commands with Git, but these commands are probably the only ones you’ll need to know for your first few years of programming.

Sam Corcos is the lead developer and co-founder of Sightline Maps, the most intuitive platform for 3D printing topographical maps, as well as LearnPhoenix.io, an intermediate-advanced tutorial site for building scalable production apps with Phoenix and React.

Original text