Heim >Entwicklungswerkzeuge >Idiot >Ausführliche Zusammenfassung! Allgemeine Git-Operationen

Ausführliche Zusammenfassung! Allgemeine Git-Operationen

WBOY
WBOYnach vorne
2022-03-02 17:51:351669Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Git. Er fasst hauptsächlich allgemeine Betriebsprobleme zusammen, darunter das Erstellen von Lagern, das Hinzufügen von Dateien, das Ändern von Inhalten und andere damit zusammenhängende Probleme.

Ausführliche Zusammenfassung! Allgemeine Git-Operationen

Empfohlenes Lernen: „Git-Tutorial

1. Erstellen Sie ein Git-Warehouse

Öffnen Sie den Speicherort, an dem Sie ein Warehouse erstellen müssen, öffnen Sie die Git-Befehlsschnittstelle oder geben Sie ein git im Terminal terminal initErstellt ein Lager. Git命令界面或Terminal终端输入git init创建仓库。
Ausführliche Zusammenfassung! Allgemeine Git-Operationen
创建完成后得到提示Initialized empty Git repository in /Users/huaqiangsun/Git/.git/ 已初始化空的Git仓库在当前目录中,同时可以看到目录中多出来.git文件夹(一般为隐藏文件夹,Mac下可通过shift + cmd + . 组合快捷键查看隐藏文件)。

二、查看仓库文件状态

提起Git,常常会提到工作区、暂存区、版本库概念,这是很通用的说法,其实工作区一般就是指我们能看到的文件、本地操作文件所在的目录,我们正常编写的代码文件、管理的资源文件都是在工作区里操作,这里的文件又细分为受版本控制的文件和不受版本控制的文件。

提到暂存区,就和index文件建立了联系,工作区的新文件和已经修改受版本控制的文件,使用 git add file_name 就可以添加到暂存区,相当于登记报个名,以后提交到版本库的时候会把这些登记的文件都带上,实际上执行了 git add 命令的文件都生成了对应的 object 对象,放在.git/objects目录下,状态变为 staged, 当提交到版本库时,分支会引用这些对象。

版本库就是文件修改的目的地了,最终的修改会提交到版本库,这时提交的文件状态变成 committed,其实也是一种 unmodified 状态,版本库会记录你的每一次提交,可以追溯你每一次修改的内容。

文件状态通常可以分为:

  • 不受版本控制的 untracked 状态;
  • 受版本控制并且已修改的 modified 状态;
  • 受版本控制已修改并提交到暂存区的 staged 状态;
  • 从暂存区已经提交到本地仓库的 committed 状态;
  • 提交到本地仓库未修改或者从远程仓库克隆下来的 unmodified 状态;

使用git status可以看到当前仓库的文件修改和未提交文件情况。
Ausführliche Zusammenfassung! Allgemeine Git-Operationen
其中,

  • Changes to be committed为暂存区已存在,需要进行提交进仓库的文件;
  • Changes not staged for commit为文件被操作尚未提交至暂存区的文件,此类文件需要使用add将其添加至缓存区再提交进仓库;
  • Untracked files为未入暂存区文件;

当修改后的文件添加至暂存区后,在提交之前再次进行修改后,非暂存区会再次出现该文件,需再次add添加入暂存区,否则直接commit后仓库中的文件不会包含二次修改的内容。

总结

  • git status 只能查看未传送提交的次数,不能查看具体文件信息;
  • git cherry -v只能查看未传送提交的描述/说明;
  • git log master ^origin/master则可以查看未传送提交的详细信息;

三、向暂存区中添加文件

使用git add [fileName ...]用于将文件添加至暂存区中。

若未提示信息则表示文件添加成功。

添加文件需要填写正确的文件路径,若需要添加多个文件使用空格分隔。

四、提交暂存区文件

使用git commit -m "description"用于将已添加到暂存区的文件进行提交,每次提交可提交多个文件。

五、从仓库中移除文件

当从磁盘删除已提交给仓库中的文件时,由于仓库缓存中还存在该文件,所以使用git rm [fileName]Bildbeschreibung hier einfügen

Nach der Erstellung erhalten Sie eine Eingabeaufforderung abgeschlossenInitialisiertes leeres Git-Repository in /Users/huaqiangsun/Git/.git/ Das leere Git-Repository wurde im aktuellen Verzeichnis initialisiert, und Sie können einen zusätzlichen im Verzeichnis. .git-Ordner (im Allgemeinen ein versteckter Ordner, Sie können die Tastenkombination Umschalt + cmd + . verwenden, um versteckte Dateien auf dem Mac anzuzeigen).

2. Überprüfen Sie den Status von Warehouse-Dateien🎜🎜Bei der Erwähnung von Git werden häufig die Konzepte Arbeitsbereich, Staging-Bereich und Versionsbibliothek erwähnt Tatsächlich bezieht sich der Arbeitsbereich im Allgemeinen auf das Verzeichnis, in dem sich die von uns angezeigten Dateien und die lokalen Betriebsdateien befinden. Die von uns normalerweise geschriebenen Codedateien und die von uns verwalteten Ressourcendateien sind hier unterteilt in Dateien, die der Versionskontrolle unterliegen, und in Dateien, die nicht der Versionskontrolle unterliegen. 🎜🎜Wenn es um den Staging-Bereich geht, ist er mit der Datei index verbunden. Für neue Dateien im Arbeitsbereich und Dateien, die geändert wurden und unter Versionskontrolle stehen, verwenden Sie git add file_name Das Hinzufügen zum temporären Speicherbereich entspricht der Registrierung eines Namens. Bei der Übermittlung an das Repository werden diese registrierten Dateien tatsächlich mitgebracht, die den git addausführen Mit dem Befehl > werden die entsprechenden Dateien im Verzeichnis .git/objects abgelegt und der Zweig erhält den Status staged Verweisen Sie auf diese Objekte. 🎜🎜Das Repository ist das Ziel für Dateiänderungen. Die endgültigen Änderungen werden an das Repository übermittelt. Zu diesem Zeitpunkt wird der Status der übermittelten Datei zu committed, was eigentlich eine Art ist Wenn Sie den Status „unverändert“ haben, zeichnet das Repository jede von Ihnen vorgenommene Übermittlung auf und kann den Inhalt jeder von Ihnen vorgenommenen Änderung nachverfolgen. 🎜🎜Der Dateistatus kann normalerweise unterteilt werden in: 🎜
  • untracked-Status, der nicht unter Versionskontrolle steht;
  • modifiedStatus;
  • stagedStatus, der unter Versionskontrolle geändert und an den Staging-Bereich übermittelt wurde;
  • hat aus dem Staging-Bereich übermittelt festgeschrieben-Status an das lokale Warehouse;
  • unverändert-Status an das lokale Warehouse übermittelt unverändert oder aus dem Remote-Warehouse geklont; ul>
🎜Verwenden Sie git status, um Dateiänderungen und nicht festgeschriebene Dateien im aktuellen Warehouse anzuzeigen. 🎜Bildbeschreibung hier einfügen🎜 Darunter 🎜
  • Zu übertragende Änderungen ist eine Datei, die bereits im temporären Speicherbereich vorhanden ist und an das Warehouse übermittelt werden muss.
  • Nicht bereitgestellte Änderungen für commitFür Dateien, die nach der Bearbeitung nicht an den Staging-Bereich übermittelt wurden, müssen solche Dateien mit add zum Cache-Bereich hinzugefügt und dann an das Warehouse übermittelt werden; li>
  • Nicht verfolgte DateienEs handelt sich um eine Datei, die nicht zum temporären Speicherbereich hinzugefügt wurde
🎜Wenn die geänderte Datei dem hinzugefügt wird Wenn die Datei erneut angezeigt wird, müssen Sie sie hinzufügen und erneut zum temporären Speicherbereich hinzufügen. Andernfalls wird die Datei im Lager erneut geändert enthält nach commit nicht den sekundären Änderungsinhalt. 🎜🎜Zusammenfassung🎜
  • git status kann nur die Anzahl der nicht übertragenen Übermittlungen anzeigen, aber keine spezifischen Dateiinformationen;
  • git Cherry -v kann nur die Beschreibung/Anweisung nicht übertragener Commits anzeigen;
  • git log master ^origin/master kann nicht übertragene Commits detailliert anzeigen Informationen;
🎜3. Dateien zum Staging-Bereich hinzufügen🎜🎜Verwenden Sie git add [fileName ...], um Dateien zum Staging-Bereich hinzuzufügen. 🎜🎜Wenn keine Meldung angezeigt wird, bedeutet dies, dass die Datei erfolgreich hinzugefügt wurde. 🎜🎜Um Dateien hinzuzufügen, müssen Sie den richtigen Dateipfad eingeben. Wenn Sie mehrere Dateien hinzufügen müssen, trennen Sie diese durch Leerzeichen. 🎜🎜4. Dateien im Staging-Bereich einreichen🎜🎜Verwenden Sie git commit -m "description", um Dateien einzureichen, die dem Staging-Bereich hinzugefügt wurden. 🎜🎜5. Dateien aus dem Warehouse entfernen🎜🎜Wenn Sie eine Datei, die an das Warehouse übermittelt wurde, von der Festplatte löschen, weil die Datei noch im Warehouse-Cache vorhanden ist, verwenden Sie git rm [fileName], um Cache löschen Sobald die Datei übermittelt wurde, wird sie nicht mehr in die Versionsverwaltung aufgenommen. 🎜🎜Wenn der aktuelle Vorgang ein Fehler ist, können Sie die Datei durch einen Rollback-Vorgang wiederherstellen. 🎜

Wenn Sie Dateien löschen möchten, die zuvor geändert wurden oder im temporären Speicherbereich abgelegt wurden, müssen Sie den Parameter -f für die Option zum erzwungenen Löschen verwenden. -f配参。

若由于误操作将一些非必要文件提交至仓库,可以使用--cached,只删除仓库中的记录并不从磁盘上删除。

git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。例如:git rm log/*.log

注意星号 * 之前的反斜杠 , 因为 Git 有自己的文件模式扩展匹配方式,所以不用 shell 来帮忙展开。 此命令删除 log/ 目录下扩展名为 .log 的所有文件。

六、设置忽略文件

对于一些日志文件、临时文件以及一些软件生成的配置或输出文件并不需要进行文件管理,所以可以创建一个.gitignore文件将需要忽略的文件名称或表达式写入.gitignore文件,以实现忽略文件的目的。

文件 .gitignore 格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

git同样支持Glob模式,Glob模式为Shell中简化的正则表达式。

  • 星号(*)匹配零个或多个任意字符;
  • [abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
  • 问号(?)只匹配一个任意字符;
    如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
  • 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。

.gitignore 文件生效步骤如下:

  • git status --ignored // 查看状态,验证是否已包括忽略的文件

  • git rm -r --cached . // 清除缓存,-r表示递归删除

  • git status --ignored // 查看具体效果

  • git add . // 重新trace file

  • git commit -m "update .gitignore" // 提交和注释

七、查看文件修改内容

使用git status只能查看每个文件的修改状态,但是无法看到每个文件的内容有哪些被修改,所以可以使用git diff查看所有追踪文件的修改对比。
Ausführliche Zusammenfassung! Allgemeine Git-Operationen
需要注意的是,git diff是查看未暂存的文件中被修改的内容,当将该文件添加入暂存区后,就无法再通过git diff查看修改内容,需要使用git diff --cached

八、移动文件

当需要重命名文件时,可以使用git mv [oldFileName] [new FileName]Git对于重命名操作会分为三步进行,第一步首先重命名文件,然后再从仓库中删除原有的文件,最后将新文件添加进暂存区等待提交。

$ mv README.md LOOKME.md
$ git rm README.md
$ git add LOOKME.md

若通过软件进行批量修改文件时,也要按照该流程先删除原文件再添加新文件。

九、撤销操作

当由于一些操作失误提交或修改了文件内容时,可以通过Git回滚操作,回滚到修改之前的状态。

回忆下前面提到的文件状态,文件状态通常可以分为:

  • 不受版本控制的 untracked 状态;
  • 受版本控制并且已修改的 modified 状态;
  • 受版本控制已修改并提交到暂存区的 staged 状态;
  • 从暂存区已经提交到本地仓库的 committed 状态;
  • 提交到本地仓库未修改或者从远程仓库克隆下来的 unmodified 状态;
    Ausführliche Zusammenfassung! Allgemeine Git-Operationen

9.1 撤销暂存区文件

使用git restore --staged [fileName]git reset HEAD [fileName]

Wenn aufgrund einer Fehlbedienung einige unnötige Dateien an das Warehouse übermittelt werden, können Sie mit --cached nur die Datensätze im Warehouse löschen, ohne sie von der Festplatte zu löschen. 🎜🎜Dem Befehl git rm kann eine Auflistung der Namen von Dateien oder Verzeichnissen folgen, oder Sie können den Modus glob verwenden. Zum Beispiel: git rm log/*.log. 🎜🎜Achten Sie auf den Backslash vor dem Sternchen *, da Git über eine eigene Methode zum Abgleichen von Dateimustererweiterungen verfügt, also auch shell nicht erforderlich zur Erweiterung. Dieser Befehl löscht alle Dateien mit der Erweiterung .log im Verzeichnis log/. 🎜

6. Ignorierdateien festlegen

🎜Einige Protokolldateien, temporäre Dateien und Konfigurations- oder Ausgabedateien, die von mancher Software generiert werden, erfordern keine Dateiverwaltung, daher können Sie einen .gitignore erstellen Die Datei schreibt den Dateinamen oder Ausdruck, der ignoriert werden muss, in die Datei .gitignore, um den Zweck des Ignorierens der Datei zu erreichen. 🎜🎜Die Formatspezifikation der Datei .gitignore lautet wie folgt: 🎜
  • Alle leeren Zeilen oder Zeilen, die mit # beginnen, werden von Git ignoriert.
  • Es kann ein standardmäßiger glob-Mustervergleich verwendet werden, der rekursiv im gesamten Arbeitsbereich angewendet wird.
  • Das passende Muster kann mit (/) beginnen, um eine Rekursion zu verhindern.
  • Das passende Muster kann mit (/) enden, um das Verzeichnis anzugeben.
  • Um Dateien oder Verzeichnisse außerhalb des angegebenen Musters zu ignorieren, können Sie vor dem Muster ein Ausrufezeichen (!) hinzufügen, um es zu negieren.
🎜git unterstützt auch den Glob-Modus, und der Glob-Modus ist eine vereinfachte Version von Shell Code> Regulärer Ausdruck. 🎜<ul> <li>Das Sternchen (<code>*) entspricht null oder mehr beliebigen Zeichen;
  • [abc] entspricht jeder Spalte in Zeichen im Quadrat Klammern (dieses Beispiel entspricht entweder einem a, einem b oder einem c);
  • Das Fragezeichen (?) entspricht nur einem beliebigen Zeichen;
    Wenn Sie einen Bindestrich verwenden Um zwei Zeichen in eckigen Klammern zu trennen, bedeutet dies, dass alles im Bereich dieser beiden Zeichen übereinstimmen kann (z. B. [0-9] bedeutet, dass alle Zahlen von 0 bis 9 übereinstimmen).
  • Verwenden Sie zwei Sternchen (**), um ein beliebiges Zwischenverzeichnis zu finden. Beispielsweise kann a/**/z mit a/z, a/b/z oder a/ übereinstimmen. b/c/z usw.
  • 🎜.gitignore Die Schritte, damit die Datei wirksam wird, sind wie folgt: 🎜
    • 🎜git status --ignored // Überprüfen Sie den Status und überprüfen Sie, ob die ignorierten Dateien enthalten sind🎜
    • 🎜git rm -r --cached . // Leeren Sie den Cache, bedeutet -r rekursives Löschen🎜
    • 🎜git status --ignored // Überprüfen Sie den spezifischen Effekt🎜
    • 🎜git add . // Retrace-Datei🎜
    • 🎜git commit -m "update .gitignore" // Commit und Kommentar 🎜

    7. Dateiänderungen anzeigen

    🎜Mit git status können Sie nur den Änderungsstatus jeder Datei anzeigen. Sie können jedoch nicht sehen, welcher Inhalt jeder Datei geändert wurde. Sie können also git diff verwenden , um den Änderungsstatus aller Tracking-Dateien anzuzeigen.
    Bildbeschreibung hier einfügen
    Es Es ist zu beachten, dass git diff zum Anzeigen des geänderten Inhalts in nicht bereitgestellten Dateien verwendet wird. Sobald die Datei dem temporären Speicherbereich hinzugefügt wurde, kann sie nicht mehr über git diffverwendet werden >Um die Änderungen anzuzeigen, müssen Sie git diff --cached verwenden. 🎜

    8. Dateien verschieben

    🎜Wenn Sie eine Datei umbenennen müssen, können Sie git mv [oldFileName] [new FileName] verwenden. Git führt den Umbenennungsvorgang in drei Schritten durch. Der erste Schritt besteht darin, die Datei umzubenennen, dann die Originaldatei aus dem Warehouse zu löschen und schließlich die neue Datei zum Staging-Bereich hinzuzufügen, um auf die Übermittlung zu warten. 🎜
    $ git log --pretty=oneline
    🎜Wenn Sie Dateien stapelweise über Software ändern, müssen Sie auch diesen Vorgang befolgen, um die Originaldateien zu löschen und dann neue Dateien hinzuzufügen. 🎜

    9. Vorgang rückgängig machen

    🎜Wenn der Dateiinhalt aufgrund einiger Betriebsfehler übermittelt oder geändert wird, können Sie den Git-Rollback-Vorgang verwenden, um auf den Zustand vor der Änderung zurückzusetzen . 🎜🎜Erinnern Sie sich an den zuvor erwähnten Dateistatus: Der Dateistatus kann normalerweise unterteilt werden in: 🎜
    • nicht verfolgt-Status, der nicht unter Versionskontrolle steht;
    • unter Versionskontrolle Und der geänderte modified-Status;
    • Der staged-Status, der geändert und unter Versionskontrolle an den Staging-Bereich übermittelt wurde;
    • festgeschrieben-Status, der vom Bereitstellungsbereich an das lokale Lager übermittelt wurde;
    • unverändert-Status, der ohne Änderung an das lokale Lager übermittelt wurde oder geklont aus dem Remote-Warehouse;
      Bildbeschreibung hier einfügen

    9.1 Machen Sie die Staging-Bereichsdatei rückgängig

    🎜Verwenden Sie git restart --staged [fileName] oder git reset HEAD [fileName] zur Wiederherstellung der Staging-Bereichsdatei. 🎜<blockquote><p>Hinweis: Der Befehl <code>git restart wurde nach der Version Git 2.23 neu hinzugefügt. Er wird verwendet, um die Funktionen des Befehls git checkout zu teilen Durch die Verwendung temporärer Speicherdateien im Bereich oder Repository werden die Änderungen lokaler Dateien überschrieben, um den Zweck des Rollbacks von Änderungen zu erreichen. Gleichzeitig können Sie Dateien im Repository auch zum Überschreiben von Dateien im temporären Speicherbereich verwenden der Befehl git add. git restore命令是 Git 2.23 版本之后新加的,用来分担 git checkout 命令的功能,通过用暂存区或者版本库中的文件覆盖本地文件的修改,以达到回退修改的目的,同时也可以使用版本库中的文件覆盖暂存区的文件,达到回退git add命令的目的。

    !!注意,这个操作不会影响分支记录,就是相当于之前的 git checkout 命令重新检出一份文件来覆盖本地的修改。

    git reset 其实就是用来设置分支的头部指向,当进行了一系列的提交之后,忽然发现最近的几次提交有问题,想从提交记录中删除,这是就会用到 git reset 命令,这个命令后面跟 commit id,表示当前分支回退到某个 commit id 对应的状态,之后的日志记录被删除,工作区中的文件状态根据参数的不同会恢复到不同的状态。

    • --soft: 被回退的那些版本的修改会被放在暂存区,可以再次提交。

    • --mixed: 默认选项,被回退的那些版本的修改会放在工作目录,可以先加到暂存区,然后再提交。

    • --hard: 被回退的那些版本的修改会直接舍弃,就像它们没有来过一样。

    使用 git rest HEAD file_name 命令就可以将一个文件回退到 HEAD 指向版本所对应的状态,其实就是当前版本库中的状态,也就相当于还原了本地的修改。

    对于工作区中未加到暂存区和版本库的文件,执行了 git add 操作之后可通过如下方法还原:

    • git rm --cached newfile
    • git restore --staged newfile
    • git reset HEAD newfile

    注:使用后两个命令的时候不能是版本库的第一个文件。

    9.2 撤销对文件的修改

    使用git checkout -- [fileName]可以将该文件回滚到上一次提交的状态。

    !注:记得git checkout -- <file></file>是一个危险的命令。 你对那个文件在本地的任何修改都会消失。Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。

    声明:由于没有添加到暂存区的文件无法被追踪,所以它的任何修改是没有办法回退!只能通过本地文件撤销操作进行。

    十、查看操作历史

    如果想要查看某个项目中所有提交信息,可以使用git log打印所有参与者的提交记录。

    每条记录都会显示提交的SHA-1 校验,作者名字和作者邮箱以及提交时间并按提交时间倒序排列。
    Ausführliche Zusammenfassung! Allgemeine Git-Operationen
    除了简单的git log外,还可以添加参数用于筛选和格式化输出信息:

    • -p --patch:它会显示每次提交所引入的差异。 也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。
      Ausführliche Zusammenfassung! Allgemeine Git-Operationen

    • --stat:在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结。
      Ausführliche Zusammenfassung! Allgemeine Git-Operationen

    • --pretty:这个选项有一些内建的子选项供你使用。 比如 oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用。 另外还有 shortfullfuller 选项,它们展示信息的格式基本一致,但是详尽程度不一;
      Ausführliche Zusammenfassung! Allgemeine Git-Operationen
      使用formart
      !! Beachten Sie, dass dieser Vorgang keine Auswirkungen auf den Zweigdatensatz hat. Er entspricht dem vorherigen Befehl git checkout, um eine Datei erneut auszuchecken, um lokale Änderungen zu überschreiben. Ausführliche Zusammenfassung! Allgemeine Git-Operationen

      git reset wird tatsächlich verwendet, um den Kopfpunkt der Verzweigung festzulegen. Nachdem ich eine Reihe von Übermittlungen vorgenommen hatte, stellte ich plötzlich fest, dass es bei den letzten Übermittlungen Probleme gab, und ich wollte es tun Entfernen Sie sie aus den Übermittlungsdatensätzen. Dazu wird der Befehl git reset verwendet. Auf diesen Befehl folgt commit id, was bedeutet, dass der aktuelle Zweig auf a zurückgesetzt wird Bestimmte Commit-ID Entsprechend dem Status werden nachfolgende Protokolldatensätze gelöscht und der Status der Dateien im Arbeitsbereich wird entsprechend unterschiedlichen Parametern auf unterschiedliche Status zurückgesetzt. 🎜
      • 🎜--soft: Änderungen der Versionen, die zurückgesetzt wurden, werden im temporären Speicherbereich abgelegt und können erneut übermittelt werden. 🎜
      • 🎜--mixed: Die Änderungen an den zurückgesetzten Versionen werden im Arbeitsverzeichnis abgelegt. Sie können zuerst zum Staging-Bereich hinzugefügt werden dann eingereicht. 🎜
      • 🎜--hard: Die Änderungen der zurückgesetzten Versionen werden direkt verworfen, als ob sie nie gekommen wären. 🎜
      🎜Verwenden Sie den Befehl git rest HEAD file_name, um eine Datei in den Zustand zurückzusetzen, der der Version entspricht, auf die durch HEAD verwiesen wird, was tatsächlich der Fall ist Die aktuelle Version Der Zustand in der Bibliothek entspricht dem Wiederherstellen lokaler Änderungen. 🎜🎜Für Dateien im Arbeitsbereich, die nicht zum Staging-Bereich und Repository hinzugefügt wurden, können sie nach Ausführung des git add-Vorgangs mit der folgenden Methode wiederhergestellt werden: 🎜
      • git rm - -cached newfile
      • git restart --staged newfile
      • git reset HEAD newfile🎜Hinweis: Bei Verwendung der letzten beiden Befehle darf es sich nicht um die erste Datei im Repository handeln. 🎜

        9.2 Änderungen an einer Datei rückgängig machen

        🎜Verwenden Sie git checkout -- [fileName], um die Datei auf den zuletzt übermittelten Status zurückzusetzen. 🎜🎜 Hinweis: Denken Sie daran, dass git checkout -- <file></file> ein gefährlicher Befehl ist. Alle lokalen Änderungen, die Sie an dieser Datei vornehmen, gehen verloren. Git überschreibt es mit der zuletzt festgeschriebenen Version. Verwenden Sie diesen Befehl nur, wenn Sie sicher sind, dass Sie keine lokalen Änderungen an dieser Datei vornehmen möchten. 🎜🎜Erklärung: Da Dateien, die nicht zum Staging-Bereich hinzugefügt wurden, nicht nachverfolgt werden können, können Änderungen daran nicht rückgängig gemacht werden! Dies kann nur durch Rückgängigmachen lokaler Dateien erfolgen. 🎜

        10. Vorgangsverlauf anzeigen

        🎜Wenn Sie alle Einreichungsinformationen in einem Projekt anzeigen möchten, können Sie git log verwenden, um die Einreichungsdatensätze aller Teilnehmer auszudrucken . 🎜🎜In jedem Datensatz werden die eingereichte SHA-1-Bestätigung, der Name und die E-Mail-Adresse des Autors sowie die Einreichungszeit angezeigt, in umgekehrter Reihenfolge der Einreichungszeit. 🎜Bildbeschreibung hier einfügen🎜 Zusätzlich zum einfachen Zusätzlich zu git log können Sie auch Parameter hinzufügen, um die Ausgabeinformationen zu filtern und zu formatieren: 🎜
        • 🎜-p --patch: Es werden die eingeführten Änderungen angezeigt durch jeden Commit-Unterschied. Es ist auch möglich, die Anzahl der angezeigten Protokolleinträge zu begrenzen, indem Sie beispielsweise die Option -2 verwenden, um nur die beiden neuesten Commits anzuzeigen. 🎜Bildbeschreibung hier einfügen🎜
        • 🎜--stat: Listet alle geänderten Dateien unter jedem Commit auf, wie viele Dateien geändert wurden und welche Zeilen der geänderten Dateien entfernt oder hinzugefügt wurden. Am Ende jeder Einreichung gibt es außerdem eine Zusammenfassung. 🎜Bildbeschreibung hier einfügen🎜
        • 🎜--pretty: Diese Option verfügt über einige integrierte Unteroptionen, die Sie verwenden können. Beispielsweise zeigt oneline jede Einreichung in einer Zeile an, was beim Durchsuchen einer großen Anzahl von Einreichungen sehr nützlich ist. Es gibt auch die Optionen short, full und fuller, die Informationen grundsätzlich im gleichen Format, aber mit unterschiedlichem Detaillierungsgrad anzeigen 🎜Bildbeschreibung hier einfügen🎜 Verwenden Sie formart, um Anpassen Definieren Sie das Druckformat. Häufig verwendete Formatinformationen sind wie folgt: 🎜🎜🎜

        示例 10.1 将日志信息显示在一行上

        $ git log --pretty=oneline

        Ausführliche Zusammenfassung! Allgemeine Git-Operationen

        示例 10.2 以 short 格式输出仓库修改信息

        $ git log --pretty=short

        Ausführliche Zusammenfassung! Allgemeine Git-Operationen

        示例 10.3 以 full 格式输出仓库修改信息

        $ git log --pretty=full

        Ausführliche Zusammenfassung! Allgemeine Git-Operationen

        示例 10.4 以 fuller 格式输出仓库修改信息

        $ git log --pretty=fuller

        Ausführliche Zusammenfassung! Allgemeine Git-Operationen
        修改文件人员与提交文件人员可以不是同一个人,所以在查询日志时会区分修改人与提交人。

        推荐学习:《Git学习教程

    Das obige ist der detaillierte Inhalt vonAusführliche Zusammenfassung! Allgemeine Git-Operationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen