Häufig gestellte Fragen zu Git

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015

Wie kann ich einen Remote-Branch problemlos in mein lokales Repository herunterladen?

Stellen Sie zunächst sicher, dass Sie ein origin Repository konfiguriert haben. Sie sollten über ein solches Repository verfügen, wenn Sie Ihr Repository git clone geklont haben. Wenn Sie einen Branch auschecken, der nicht lokal vorhanden ist, ermittelt Git, ob ein Remote-Branch mit demselben Namen vorhanden ist. Wenn dies der Reihe ist, erstellt Git einen lokalen Branch mit einem Verweis auf die Remoteverzweigung dieses Namens. Verwenden git pull Sie , um die Commits herunterzuladen und Git den Branchverlauf lokal aufholen zu können.

Wie finde ich heraus, in welchem Branch ich arbeite?

git branchohne Argumente werden die lokalen Verzweigungen angezeigt und diejenigen, die Sie ausgecheckt haben, werden angezeigt. In Visual Studio Statusleiste wird auch der aktuelle Branch angezeigt, wenn Sie mit einem Projekt arbeiten, das in einem lokalen Git-Repository gespeichert ist.

Wann sollte ich Git-Commits machen?

Die akzeptierte Vorgehensweise besteht in separaten Commits für logisch getrennte Änderungen. Stellen Sie sich Commits als Einträge in einem Logbook vor. Notieren Sie sich jedes Mal eine Änderung, die sie in einem Commit aufzeichnen sollte. Eine beliebte Option besteht in der Möglichkeit, allen Benutzern das lokale Commit so weit wie möglich zu ermöglichen, aber bevor sie die lokalen Commits pushen, müssen sie sie zuerst durch das Rebasieren von squashen. Diese Option bietet Benutzern die Flexibilität, häufige Commits zu machen und gleichzeitig den Commitverlauf zu optimieren.

Wenn jeder Branch seinen vollständigen Commitverlauf beibe beibehalten hat, ist der Commitverlauf von *main* nicht im Laufe der Zeit schwer zu verfolgen?

Große Projekte mit vielen Commits und einer Reihe von Mitwirkenden können zu Commitverläufen für den Branch führen, der den Entwicklungsverlauf der Themenbranches darstellt, die in mehr als dem Entwicklungsverlauf des Gesamtprojekts zusammengeführt mainmain wurden. Git bietet eine Möglichkeit zum Verdichten von Commits in Branches durch Squashing von Commits und Rebasingvon . Durch Das Squashing von Commits wird der Commitverlauf in einem Branch weniger ausführlich und sorgt für einen einfacheren Commitverlauf im Hauptverzweigung nach dem Zusammengeführten.

Wie kann ich herausfinden, wer eine bestimmte Änderung an einer Datei vorgenommen hat?

Verwenden Sie git blame den Befehl , um herauszufinden, wer eine bestimmte Änderung an einer Datei vorgenommen hat. In Ihrem lokalen Repository können Sie mit dem git blame -Parameter -L ausführen und angeben, welche Zeilen von Interesse sind. Blame erzeugt eine formatierte Ausgabe mit dem Commit, der die Zeile zuletzt aktualisiert hat, sowie dem Namen der Person, die den Commit vorgenommen hat.

> git blame foo.js -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Francis Totten 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame durchsucht den Commitverlauf für Sie. Sie können auch den Verlauf einer Datei im Webportal überprüfen, um zu bestimmen, wer wann eine Änderung vorgenommen hat. Öffnen Sie den Code-Explorer für Ihr Repository und Ihren Branch, und klicken Sie dann auf die datei für Sie. Azure Repos zeigt einen vollständigen Commitverlauf für diese Datei im aktuellen Branch an.

Ich habe Änderungen an einigen Dateien vorgenommen und kann mich jetzt nicht mehr in einem anderen Branch auschecken oder meine Arbeit neu erstellen.

Das Auschecken in einen anderen Branch in Git wirkt sich auf den Status von Dateien in Ihrem Dateisystem aus. Git verwendet den Commitverlauf, um sicherzustellen, dass Sie mit den Dateien arbeiten, die den Zustand Ihres Branchs darstellen. Wenn Sie versuchen, Verzweigungen zu ändern, während Keine Änderungen vorgenommen wurden, werden diese Änderungen beim Auschecken überschrieben. Da Git nicht möchte, dass Sie versehentlich Ihre Änderungen verlieren, verhindert dies, dass der Check-Out erfolgt. Sie haben zwei Möglichkeiten:

Ich habe einige Arbeit erledigt, muss aber zu etwas anderem wechseln. Wie kann ich meine Arbeit für einen späteren Zeitpunkt speichern, ohne die Änderungen zu committen?

Manchmal möchten Sie die Änderungen behalten, aber nicht commiten, da sie sich nicht an einem Punkt befinden, an dem Sie damit zu tun sind. Verwenden Sie Git stash . Stash übernimmt die aktuellen gestagten und ungestagierten Änderungen in Ihrem Branch und speichert die Arbeit und kehrt dann zum Zustand des letzten Commits zurück. Sie können zum anderen Branch wechseln, Ihre Arbeit ausführen und dann ausführen, wenn Sie zu diesem Branch zurückkehren, um stash apply Ihre Änderungen wiederherzustellen.

> git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

Wenn Sie git stash apply ausführen, werden die letzten Stash-Änderungen auf Ihren aktuellen Branch angewendet. Wenn ein Konflikt beim Anwenden der Stash-Änderungen besteht, stellt die Änderungen für die Dateien wieder wieder auf, die nicht in Konflikt stehen, und erstellt Konfliktmarker in den Dateien, die konflikte, damit Sie sie stash auflösen können. In diesem Fall sollten Sie die Änderungen manuell zusammenführen.

Sobald Sie mit dem Stash fertig sind, löschen Sie ihn mit Diesem Befehl entfernt den letzten Satz von git stash drop Stash-Änderungen.

Sie können mehrere Stashes haben, aber dies erfordert eine manuelleRemanipulation, da Sie Stashes explizit anwenden und ablegen müssen. Weitere Informationen finden Sie in der Git Stash-Dokumentation.

Wie kann ich den Standard-Editor für Git-Befehlszeilentools ändern?

Standardmäßig verwendet Git über die Befehlszeile einen Befehlszeilen-Editor, wenn commit-Nachrichten, Rebases und andere Aufgaben, die zusätzliche Informationen erfordern, erforderlich sind. Der Standard-Editor wird mit git config konfiguriert:

> git config core.editor _path_to_editor_ _options_to_editor_

Git für Windows erleichtert das Festlegen von Editor als Editor:

> git config core.editor notepad

Dadurch wird der Windows konfiguriert Editor Git-Informationen nach Bedarf zu bearbeiten und den Text von Git ordnungsgemäß an Editor. Sie können auch angeben.

> git config format.commitMessageColumns 72 

Um die Textspalten in den Commitnachrichten auf den bevorzugten Zeilenumbruch 72 zu beschränken, nachdem dieser Zeichengrenzwert für eine Zeile erreicht wurde.

Wie kann ich den Benutzernamen und die E-Mail ändern, die in meinen Commits angezeigt werden?

Git legt in jedem Commit einen Benutzernamen und E-Mail-Adressinformationen fest, und Azure Repos verwendet diese Informationen beim Anzeigen von Commits und beim Arbeiten mit Pull Requests. Wenn Sie an der Befehlszeile arbeiten, können Sie den Angezeigten Namen und die angezeigten E-Mail-Informationen mithilfe des Befehls git config aktualisieren:

> git config --global user.email "frank@fabrikam.com"
> git config --global user.name "Francis Totten"

Mit --global der Option werden die E-Mail und der Name festgelegt, die in Commits für alle Git-Repositorys auf diesem System enthalten sind. Wenn Sie die Einstellungen für ein einzelnes Repository ändern möchten, müssen Sie in das Verzeichnis wechseln, in dem sich das Git-Repository befindet, und die oben genannten Befehle ohne das -Flag --global ausführen.

Sie können auch den Namen und die E-Mail-Einstellungen von Visual Studio. Wählen Team Explorer die Option Einstellungen aus, und klicken Sie unter Gitauf den Link Global Einstellungen oder Repository Einstellungen.