Häufig gestellte Fragen zu Git

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019 | TFS 2018

Wie kann ich einen Remotebranch 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 geklont git clonehaben. Wenn Sie einen Branch auschecken, der lokal nicht vorhanden ist, bestimmt Git, ob es einen Remotebranch mit demselben Namen gibt. Falls vorhanden, erstellt Git einen lokalen Branch mit einem Verweis auf den Remotebranch dieses Namens. Verwenden Sie git pull , um die Commits herunterzuladen und Git den Branchverlauf lokal nachholen zu lassen.

Wie finde ich heraus, in welchem Branch ich arbeite?

git branchohne Argumente werden die lokalen Verzweigungen angezeigt und die ausgecheckten Verzweigungen hervorgehoben. In Visual Studio zeigt die status leiste auch den aktuellen Branch an, wenn Sie mit einem Projekt arbeiten, das in einem lokalen Git-Repository gespeichert ist.

Wann sollte ich Git-Commits vornehmen?

Die akzeptierte Praxis besteht darin, separate Commits für logisch getrennte Änderungen vorzunehmen. Stellen Sie sich Commits als Einträge in einem Logbook vor. Wenn Sie eine Änderung vornehmen, die erwähnenswert ist, notieren Sie sie in einem Commit. Eine beliebte Option besteht darin, jedem das lokale Commit so viel zu ermöglichen, wie er möchte, aber bevor er die lokalen Commits pusht, squashen er sie zuerst durch neubasieren. Diese Option bietet Benutzern die Flexibilität, häufige Commits durchzuführen, während der Commitverlauf optimiert bleibt.

Wenn jeder Branch seinen vollständigen Commitverlauf beibehält, ist es nicht schwierig, den Commitverlauf von *Standard* im Laufe der Zeit zu verfolgen?

Große Projekte mit vielen Commits und einer Reihe von Mitwirkenden können zu Commitverläufen für den main Branch führen, der den Entwicklungsverlauf der Themenverzweigungen darstellt, die in main mehr als den Entwicklungsverlauf des gesamtprojekts zusammengeführt werden. Git bietet eine Möglichkeit, Commits für Branches durch Squashing commits und rebasing zu verdichten. Wenn Sie Commits squashen, wird der Commitverlauf in einem Branch weniger ausführlich, was einen einfacheren Commitverlauf auf dem Standard Branch nach dem Zusammenführen ermöglicht.

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

Verwenden Sie den git blame Befehl, um herauszufinden, wer eine bestimmte Änderung an einer Datei vorgenommen hat. In Ihrem lokalen Repository können Sie mit dem -L Parameter ausführengit blame, um anzugeben, welche Zeilen von Interesse sind. Blame erzeugt eine formatierte Ausgabe mit dem Commit, der die Zeile zuletzt aktualisiert hat, und dem Namen der Person, die den Commit durchgeführt 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 code Explorer für Ihr Repository und Ihren Branch, und wählen Sie dann die gewünschte Datei aus. Azure Repos zeigt einen vollständigen Commitverlauf für diese Datei im aktuellen Branch an.

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

Das Auschecken zu einem anderen Branch in Git wirkt sich auf den Zustand der Dateien in Ihrem Dateisystem aus. Git verwendet den Commitverlauf, um sicherzustellen, dass Sie mit den Dateien arbeiten, die den Status Ihres Branchs darstellen. Wenn Sie versuchen, Branches zu ändern, während Sie änderungen ohne Commit vorgenommen haben, werden diese Änderungen während des Auscheckens überschrieben. Da Git nicht möchte, dass Sie versehentlich Ihre Änderungen verlieren, wird verhindert, dass die Auscheckvorgänge durchgeführt werden. Sie haben zwei Möglichkeiten:

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

Manchmal möchten Sie die Änderungen beibehalten, aber nicht committen, weil sie sich nicht an einem Punkt befinden, an dem Sie dies tun können. Verwenden Sie Git stash. Stash übernimmt die aktuellen gestaffelten und nicht mit Tags versehenen Änderungen in Ihrem Branch und speichert die Arbeit. Anschließend wird der Branch wieder in den Zustand des letzten Commits versetzt. Sie können zur anderen Verzweigung wechseln, Ihre Arbeit erledigen, und wenn Sie zu diesem Branch zurückkehren, führen Sie aus stash apply , um 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 ausführen git stash apply, werden die zuletzt gestaffelten Änderungen auf Ihren aktuellen Branch angewendet. Wenn ein Konflikt vorliegt, der die gestaffelten Änderungen anwendet, stellt die Änderungen für die Dateien wieder her, stash die keinen Konflikt verursachen, und erstellt Konfliktmarkierungen in den Dateien, die konflikte verursachen, damit Sie sie lö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 git stash drop diesem Befehl entfernt den letzten Satz gestaffelter Änderungen.

Sie können mehrere Stashes haben, aber dies erfordert mehr manuelle Manipulationen, da Sie Stashes explizit anwenden und löschen 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 Befehlszeilen-Git einen Befehlszeilen-Editor, wenn Sie nach Commitnachrichten, Rebases und anderen Aufgaben fragen, für die zusätzliche Informationen erforderlich sind. Der Standard-Editor wird mit git configkonfiguriert:

> 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

Mit diesem Befehl wird Windows-Editor so konfiguriert, dass Git-Informationen nach Bedarf bearbeitet und der Text ordnungsgemäß von Git an Editor übergeben wird. Sie können auch angeben:

> git config format.commitMessageColumns 72 

So behalten Sie die Textspalten in den Commitnachrichten in den bevorzugten 72 und Zeilenumbruch bei, nachdem diese Zeichengrenze in einer Zeile erreicht wurde.

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

Git fügt einen Benutzernamen und E-Mail-Adressinformationen in jeden Commit ein, und Azure Repos verwendet diese Informationen beim Anzeigen von Commits und bei der Arbeit mit Pull Requests. Wenn Sie an der Befehlszeile arbeiten, können Sie die angezeigten Namens- und E-Mail-Informationen mit dem git config Befehl aktualisieren:

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

Die --global Option legt die E-Mail-Adresse und den Namen fest, die in Commits für alle Git-Repositorys in diesem System enthalten sind. Wenn Sie die Einstellungen für ein einzelnes Repository ändern möchten, müssen Sie zu dem Verzeichnis wechseln, in dem sich das Git-Repository befindet, und die oben genannten Befehle ohne das --global Flag ausführen.

Sie können auch den Namen und die E-Mail-Einstellungen in Visual Studio ändern. Wählen Sie im Git-MenüEinstellungen Aus dem Dialogfeld Optionen wählen Sie Globale Git-Einstellungen oder Git-Repositoryeinstellungen>Allgemein aus.

Visual Studio 2019, Version 16.8 und höher, bietet eine Benutzeroberfläche für Git-Versionskontrolle, während die Git-Benutzeroberfläche von Team Explorer beibehalten wird. Um Team Explorer zu verwenden, deaktivieren Sie in der Menüleiste Extras>Optionen>Vorschaufeatures>Neue Git-Benutzeroberfläche. Sie können Git-Features über beide Schnittstellen austauschbar verwenden.

Wählen Sie in Team Explorer Einstellungen und unter Git den Link Globale Einstellungen oder Repositoryeinstellungen aus.