Heim Entwicklungswerkzeuge Idiot Führt Sie in 10 Minuten Schritt für Schritt durch die am häufigsten verwendeten Git-Befehle

Führt Sie in 10 Minuten Schritt für Schritt durch die am häufigsten verwendeten Git-Befehle

Aug 27, 2021 pm 02:04 PM
Git -Befehl

Im Wesentlichen kann Git Änderungen an Text aufzeichnen, aber seine Definition ist ein Versionskontrollsystem. Wahrscheinlich haben Sie Git bereits auf die eine oder andere Weise verwendet: Aufgrund seiner verteilten Natur ist es der De-facto-Standard für die Code-Versionskontrolle, im Gegensatz zur zentralisierten Apache Subversion (SVN).

Git installieren

Um zu überprüfen, ob Git installiert ist, führen Sie im Terminal Folgendes aus:

$ git version
git version 2.27.0.rc1.windows.1

Wenn es nicht installiert ist, befolgen Sie die Anweisungen unter https://git-scm.com/downloads. Mac-Benutzer können es mit brew installieren: brew install git.

Git konfigurieren

Wir müssen nur ein paar Dinge konfigurieren

git config --global user.name "前端小智" && # 你的名字
git config --global user.email johndoe@example.com && # 你的邮箱
git config --global init.defaultbranch main # 默认分支名称,与GitHub兼容

Mit dem folgenden Befehl können Sie die aktuelle globale Konfiguration anzeigen

git config --global --list
# Type ":q" to close

git speichert die Konfiguration im Klartext. Wenn Sie sie direkt ändern möchten, Sie können es direkt in ~/.gitconfig ändern oder die globale Konfiguration in ~/.config/git/config bearbeiten.

Wie der Befehl andeutet, wird durch das Entfernen von --global der Geltungsbereich dieser Befehle auf den aktuellen Ordner erweitert. Aber um dies zu testen, brauchen wir ein Repository.

Neues Repository erstellen

Ein Repository ist nur ein Ordner, der alles enthält, was wir verfolgen möchten. Erstellt mit dem Befehl:

mkdir gitexample && 
cd gitexample && 
git init
# gitexample git:(main)

Dieser Befehl erstellt einen .git-Ordner im Gitexample-Ordner. Dieser versteckte .git-Ordner ist das Repository: Alle lokalen Konfigurationen und Änderungen werden hier gespeichert.

Ändern

Erstellen Sie etwas im Repository:

echo "Hello, Git " >> hello.txt

Führen Sie git status aus und wir sehen die neu erstellte, nicht verfolgte Datei.

git status
# On branch main
# 
# No commits yet
# 
# Untracked files:
#  (use "git add <file>..." to include in what will be committed)
#   hello.txt
#
# nothing added to commit but untracked files present (use "git add" to track)

Gemäß dem Eingabeaufforderungsvorschlag fügen wir die Datei hinzu:

git add .

Wenn wir nicht möchten, dass alle Dateien hinzugefügt werden, können wir

git add hello.txt

Wenn Sie jetzt den Status des Repositorys überprüfen, werden Sie sehen, dass die Die Datei wurde hinzugefügt (auch als bereitgestellt bezeichnet), aber sie wurde noch nicht übermittelt.

git status
# On branch main
# 
# No commits yet
# 
# Changes to be committed:
#  (use "git rm --cached <file>..." to unstage)
#   new file:   hello.txt

Um diese Änderungen zu dokumentieren, schreiben wir sie fest.

git commit -m "Add hello.txt"
# [main (root-commit) a07ee27] Adds hello.txt
# 1 file changed, 2 insertions(+)
# create mode 100644 hello.txt

git commit -m ist ein kurzer Befehl. Sie können git commit verwenden, um einen Editor (hauptsächlich vim) zu öffnen und eine detaillierte Commit-Beschreibung bereitzustellen.

Überprüfen Sie den Commit-Verlauf:

git log
# Author: qq449245884 <44924566884@qq.com>
# Date:   Sat Jul 17 14:57:24 2021 +0800
#
#    Add hello.txt
#

Erstellen Sie einen Zweig

In vielen Situationen ist es nützlich, eine unabhängige Version Ihres ursprünglichen Codes zu haben: zum Beispiel beim Testen von Funktionen, bei denen Sie sich nicht sicher sind, oder wenn Sie zusammenarbeiten, um dies zu vermeiden Codekonflikt. Genau das ist ein Git-Zweig: Er wächst an einem bestimmten Punkt in der Geschichte.

Um einen Branch zu erstellen, führen Sie git branch NAME aus, um den Branch zu wechseln, führen Sie git checkout NAME aus. Oder einfach

git checkout -b dev # 切换到一个名为“dev”的新分支
# Switched to a new branch &#39;dev&#39;
# gitexample git:(dev)

wir ändern etwas in der Datei Hello.txt und übernehmen die Änderungen:

echo "\nHello, Git Branch" >> hello.txt &&
git commit -am "Change hello.txt"

Wechseln Sie nun zum Hauptzweig:

git checkout main &&
cat hello.txt
# Switched to branch &#39;main&#39;
# Hello, Git

Wie Sie sehen können, ist der Dateiinhalt immer noch derselbe wie zuvor. Um Zweige zu vergleichen, können wir ausführen.

git diff dev
# diff --git a/hello.txt b/hello.txt
# index 360c923..b7aec52 100644
# --- a/hello.txt
# +++ b/hello.txt
# @@ -1,3 +1 @@
# Hello, Git
# -
# -Hello, Git Branch
# (END)
# type ":q" to close

Nehmen wir Änderungen im Hauptzweig vor:

echo "\nHi from Main Branch" >> hello.txt &&
git commit -am "Change hello.txt from main"
# [main 9b60c4b] Change hello.txt from main
# 1 file changed, 2 insertions(+)

Versuchen wir nun, diese Änderungen zusammenzuführen.

git merge dev
# Auto-merging hello.txt
# CONFLICT (content): Merge conflict in hello.txt
# Automatic merge failed; fix conflicts and then commit the result.

Da die Datei zweimal an derselben Stelle geändert wurde, hatten wir einen Konflikt. Schauen Sie sich diese Datei an

cat hello.txt
<<<<<<< HEAD
Hello, Git
Hi from Main Branch
=======
Hello, Git
>>>>>>> dev

Es ​​gibt auch einen Befehl, um die Änderungen einzeln anzuzeigen:

git diff --ours # :q to close 
git diff --theirs #:q to close

Sie können die Datei manuell bearbeiten und die Änderungen übernehmen, aber stellen wir uns vor, wir möchten nur eine Version davon. Beginnen wir damit, die Zusammenführung abzubrechen.

git merge --abort

und starten Sie die Zusammenführung mit der Strategie „ihre“ neu, was bedeutet, dass wir im Falle eines Konflikts das verwenden, woran der eingehende Zweig festhält.

git merge -X theirs dev
# Auto-merging hello.txt
# Merge made by the &#39;recursive&#39; strategy.
# hello.txt | 5 +----
# 1 file changed, 1 insertion(+), 4 deletions(-)

Das Gegenteil dieser Strategie ist „unsere“. Das Zusammenführen dieser beiden Änderungen erfordert eine manuelle Bearbeitung (oder die Verwendung von Git Mergetool).

Eine Liste aller Branch-Ausführungen anzeigen

git branch # type :q to close
#  dev
# * main

Zum Schluss den Branch löschen und ausführen:

git branch -d dev
# Deleted branch dev (was 6259828).

Branch zurücksetzen

Der Branch „wächst“ ab einem bestimmten Punkt im Git-Verlauf, Rebase ermöglicht das Ändern dieses Punktes. Lassen Sie uns einen weiteren Zweig erstellen und einige Änderungen an hello.txt hinzufügen.

git checkout -b story &&
echo "Once upon a time there was a file">>story.txt &&
git add story.txt &&
git commit -m "Add story.txt"
# Switched to a new branch &#39;story&#39;
# [story eb996b8] Add story.txt
# 1 file changed, 1 insertion(+)
# create mode 100644 story.txt

Jetzt gehen wir zurück zum Hauptzweig und fügen Änderungen hinzu:

git checkout main &&
echo "Other changes" >> changes.txt &&
git add changes.txt &&
git commit -m "Add changes.txt"

Setzen Sie die Änderungen, die wir im Hauptzweig vorgenommen haben, auf den Story-Zweig zurück:

git checkout story &&
git rebase main
# Successfully rebased and updated refs/heads/story.

Sie können sehen, dass die im Hauptzweig erstellten neuen Dateien zur Story hinzugefügt werden Zweig.

ls
# changes.txt hello.txt   story.txt

Hinweis: Rebasieren Sie keine Zweige, die andere möglicherweise verwendet haben, wie z. B. den Master-Zweig. Denken Sie außerdem daran, dass jeder historische Vorgang im Remote-Repository die Wirksamkeit dieser Änderungen erzwingen muss.

Remote-Repository

Wenn Sie noch keins haben, erstellen Sie ein GitHub-Konto, melden Sie sich an und erstellen Sie ein neues leeres Repository (privat oder öffentlich).

Angenommen, der Name des Repositorys lautet „example“, führen Sie den folgenden Befehl aus (ändern Sie ihn in Ihren Benutzernamen).

git remote add origin git@github.com:USERNAME/example.git &&
git push -u origin main

Sie können die Seite aktualisieren und die Dateien im Hauptzweig sehen. Führen Sie Folgendes aus, um alle lokalen Zweige in das Remote-Repository zu übertragen.

git push --all origin

Lassen Sie uns etwas auf GitHub bearbeiten: Klicken Sie einfach auf eine beliebige Datei und das Stiftsymbol. Fügen Sie eine beliebige Textzeile hinzu und klicken Sie auf „Änderungen senden“.

Führen Sie diesen Befehl lokal aus, um die Änderungen remote abzurufen. [Empfohlen: Git-Tutorial]

git checkout main &&
git pull

Nicht festgeschriebene Änderungen verwalten

Wenn Sie Ihre lokalen Änderungen für die spätere Verwendung speichern möchten, können Sie Git Stash verwenden.

echo "Changes" >> hello.txt &&
git stash

Jetzt können Sie die folgenden Befehle verwenden, um diese Änderungen zu überprüfen, anzuwenden oder zu verwerfen.

git stash list
# stash@{0}: WIP on main: 92354c8 Update changes.txt
git stash pop # 应用更改
git stash drop # 撤销修改

你可以使用 stash 编号,即git stash pop 0来应用一个特定的储藏库,或者git stash drop 0来撤销。

如果你想放弃所有的本地修改,只需恢复版本库到最后提交的修改,请运行。

git restore .

管理提交的更改

一旦你创建了一个提交,这个变化就会保存在本地的git历史中。如前所述,所有影响远程历史的修改都需要git push --force。以下所有命令都要记住这一点。

我们从编辑最后的提交信息开始。

git commit --amend # type :wq to save and close
# Press "i" to edit, "Esc" to stop editing

我们把一切重设到最开始怎么样?

要找到第一次提交的ID,请运行这个命令并滚动(向下箭头)到最后。

git log --abbrev-commit
# commit a07ee27
# Author: Your Name <your@email.address>
Date:   Sun Jul 11 11:47:16 2021 +0200
    Adds hello.txt
(END)
# type ":q" to close

现在运行这个来重置版本库,但保持所有的修改不被缓存。

git reset --soft COMMIT # e.g. a07ee27

与之相反,你也可以进行硬重置,用git reset --hard COMMIT来删除所有修改。还有几种其他的重置方式,你可以从git文档中了解到。

别名

大多数时候,你只需要使用少数几个命令(主要是checkout、add、commit、pull、push和merge),但有些命令可能是你想要“以防万一”的。

存储这些信息的一种方法是git aliases。要配置一个别名,只需在配置中设置它。例如,我经常使用的一个别名是git tree,它以树的形式打印出一个漂亮的历史日志。

git config --global alias.tree &#39;log --graph --decorate --pretty=oneline --abbrev-commit&#39;
# Try it with `git tree`

另一个有用的别名是删除所有合并的分支。

git config --global alias.clbr &#39;!git branch --merged | grep -v \* | xargs git branch -D&#39;

你可以看到它的前缀是"!",这允许我们使用任何命令,而不仅仅是git命令。

~完,我是刷碗智,今天礼拜六写的,要准备去刷碗了,骨的白!

▎作者:Valeria 译者:前端小智 来源:dev 原文:https://dev.to/valeriavg/master-git-in-7-minutes-gai

Das obige ist der detaillierte Inhalt vonFührt Sie in 10 Minuten Schritt für Schritt durch die am häufigsten verwendeten Git-Befehle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1532
276
Wie erstelle ich einen Merge-Commit, auch wenn ein Schnellvorlauf möglich ist? Wie erstelle ich einen Merge-Commit, auch wenn ein Schnellvorlauf möglich ist? Jul 21, 2025 am 02:22 AM

Verwenden Sie Gitmerge-No-FF, um Git zu zwingen, Merge-Commits zu erstellen, auch wenn Sie schnell vorwärts gehen können. 1. Verwenden Sie den Parameter-no-fF, um die Zweighistorie zu erhalten und die Quelle des Wandels zu klären. 2. Diese Methode ist besonders nützlich während der Codeüberprüfung oder -prüfung und wird häufig in strengen Zweigstrategien wie Gitflow verwendet. 3. Diese Operation kann automatisiert werden, indem Alias oder Skripte wie GitConfig-Globalalias.Merge-noff '! Gitmerge-no-FF' konfiguriert werden, wodurch der Prozess vereinfacht wird.

Wie man einen gelöschten Zweig mit Git -Reflog wiederherstellt Wie man einen gelöschten Zweig mit Git -Reflog wiederherstellt Jul 25, 2025 am 12:46 AM

RUNGIREFLOG--date = localToviewRecentReferencechangesandlocatethededEletedbranchbyitsNameorCommithash.2.IdentifytheCommithaNtoBeforee "Deletedbranch" MessageinTheReFrogoutput.3.RecreatetheBanchuchusedgitchout-Bbranch-Namecommit-Hash-Hash oder

Wie konfiguriere ich Git mit meinem Benutzernamen und meiner E -Mail -Adresse? Wie konfiguriere ich Git mit meinem Benutzernamen und meiner E -Mail -Adresse? Jul 23, 2025 am 02:57 AM

Die Methode zum Festlegen des Git-Benutzernamens und des Mailbox besteht darin, die Befehle von GitConfig-Globaluser.name und GitConfig-GlobalUser.Email zu verwenden, um die Identitätsinformationen global zu konfigurieren. Die spezifischen Schritte sind wie folgt: 1. Setzen Sie den Benutzernamen: Gitconfig-Globaluser.Name "Yourname" ausführen; 2. Konfigurieren Sie das Mailbox: Gitconfig-GloBaluser.Email "your.email@example.com"; 1. Überprüfen Sie die Einstellungen: Geben Sie GitConfiguser.name und Gitco über

Große Monorepos mit Git verwalten Große Monorepos mit Git verwalten Jul 25, 2025 am 12:39 AM

USeShallowclonesandsparseChEckoutStoreduClonetimeAnddiskusByFetchingonlyN-DEWORTORYAndFiles.2.StructurethemonorepologicalByServiceOrteam, usecodeownerswuchswuchswuchs und KeepbuildsModularWitools-LikeBazelorturborepo.3.3.3.3.

Wann sollte ich Git Merge vs. Git Rebase verwenden? Wann sollte ich Git Merge vs. Git Rebase verwenden? Jul 22, 2025 am 02:43 AM

UseGitMergetopreserveHistoryAndCollaboratesafely, insbesondere umfublicbrancheslikemaNorreveles

Wie kann ich ein bestimmtes Komitee zurücksetzen (erstellen Sie ein neues Commit, das die Änderungen rückgängig macht)? Wie kann ich ein bestimmtes Komitee zurücksetzen (erstellen Sie ein neues Commit, das die Änderungen rückgängig macht)? Jul 20, 2025 am 01:41 AM

Um ein Commit zu widerrufen, das in ein Repository gedrängt wurde, aber den Verlauf hält, verwenden Sie Gitervert, um ein neues Commit zu erstellen, um die Änderungen am angegebenen Komitee umzukehren. 1. Verwenden Sie Gitlog-Einstieg, um den Hash-Wert des Zielausschusses zu finden. 2. Ausführen von Gitrevert oder wie Gitreverthead ~ 2, um ein bestimmtes Commit zu widerrufen; 3. Wenn es einen Konflikt gibt, lösen Sie ihn manuell und fahren Sie mit Gitrevert fort-kontinuieren oder abbrechen; 4. Die Einreichungsinformationen können bearbeitet und bestätigt werden; 5. Für fusionierte Commits muss der Parameter -m1 hinzugefügt werden. Diese Methode ist für gemeinsame Zweige sicher und vermeidet Probleme, die durch die Umschreibung der Anamnese verursacht werden.

So ändern Sie die vorherige Git -Commit -Nachricht So ändern Sie die vorherige Git -Commit -Nachricht Aug 01, 2025 am 03:34 AM

ToamendthemostrecentcommitMessage, usegitcommit-amend-m "yournewcommitMessage" ifthecommithas nichtbeenpushed;

Wie kann ich einen Staging -Betrieb rückgängig machen? Wie kann ich einen Staging -Betrieb rückgängig machen? Aug 02, 2025 am 01:26 AM

Wenn Sie fälschlicherweise Dateien zum temporären Speicherbereich in Git hinzufügen, können Sie den Befehl Gitrestore oder Gitreset verwenden, um den Vorgang rückgängig zu machen. 1. Um den temporären Speicher einer einzelnen Datei abzubrechen, können Sie den Dateinamen oder den Gitresethead-Dateinamen ausführen. 2. Um den temporären Speicher aller Dateien gleichzeitig zu stornieren, können Sie Gitrestore ausführen. oder Gitreset; 3. Wenn Sie bereits eingereicht haben, müssen Sie Gitreset-Mixedhead ~ 1 verwenden, um die Einreichung rückgängig zu machen und die Änderungen beizubehalten. 4. Wenn Sie gleichzeitig Änderungen im temporären Speicher- und Arbeitsverzeichnis verwerfen möchten, können Sie Gitrestore-Arbeiten ausführen

See all articles