Was ist Git?
Offizielle Worte: Git ist ein kostenloses und quelloffenes verteiltes Versionskontrollsystem, das für die schnelle und effiziente Abwicklung verschiedener Aufgaben entwickelt wurde klein bis groß Alles von Großprojekten.
Es kann automatisch jede Dateiänderung für mich aufzeichnen und ermöglicht auch die Zusammenarbeit von Kollegen bei der Bearbeitung, sodass ich weder eine Menge ähnlicher Dateien selbst verwalten noch Dateien übertragen muss. Wenn Sie eine bestimmte Änderung sehen möchten, müssen Sie nur einen Blick in die Software werfen.
Warum sollte ich Git lernen?
Werde im Vorstellungsgespräch gefragt. Kann Interviews führen.
Viele Unternehmen nutzen Git, um Projekte während der Entwicklung abzuwickeln. Wenn Sie es jetzt nicht lernen, müssen Sie es auf jeden Fall später lernen.
Meiner Meinung nach ist Git etwas, das heute alle Programmierer beherrschen müssen, und es muss in Zukunft verwendet werden, um Projekte mit Kollegen zu entwickeln. Die Effizienz der Entwicklung kann durch die Beherrschung von Git-Befehlen verbessert werden.
Git installieren
Windows
Laden Sie es direkt von der offiziellen Website herunter. Klicken Sie nach Abschluss des Downloads mit der rechten Maustaste auf eine Datei. Wenn Git Bash Here vorhanden ist, ist die Installation erfolgreich. Nach der Installation müssen Sie außerdem in der Befehlszeile Folgendes eingeben:
$git config --global user.name"你的名字" $git config --global user.email"你的邮箱"
global bedeutet, dass alle Git-Repositorys auf diesem Computer diese Konfiguration verwenden. Erlauben Sie einzelnen Repositorys, andere Namen und E-Mail-Adressen zu verwenden.
Mac
Mac kann auch wie Windows installiert werden, indem Sie die oben genannten Schritte ausführen.
Sie können Xcode auch direkt aus dem AppStore installieren. Xcode integriert Git, es ist jedoch nicht standardmäßig installiert. Sie müssen Xcode ausführen, das Menü „Xcode“ -> „Einstellungen“ auswählen und nach „Downloads“ suchen " im Popup-Fenster. Wählen Sie „Befehlszeilentools“ und klicken Sie auf „Installieren“, um die Installation abzuschließen.
Lager
Das lokale Lager ist für das entfernte Lager. Lokales Lager = Arbeitsbereich + Versionsbereich.
Der Arbeitsbereich ist eine Sammlung von Dateien auf der Festplatte.
Der Versionsbereich (Versionsbibliothek) ist die .git-Datei.
Repository = Staging-Bereich (Stufe) + Zweig (Master) + Zeigerkopf.
Nehmen Sie als Beispiel den Git-Befehl, den ich am häufigsten verwende, nämlich das Senden an Github.
git init Ursprünglich enthielt das lokale Lager nur den Arbeitsbereich, was der häufigste Arbeitszustand ist. Zu diesem Zeitpunkt bedeutet git init, dass im lokalen Bereich eine .git-Datei erstellt und der Versionsbereich eingerichtet wird.
git add bedeutet, dass alle Dateien im Arbeitsbereich an den temporären Speicherbereich im Versionsbereich gesendet werden.
Natürlich können Sie sie auch einzeln über git add ./xxx/ zum Staging-Bereich hinzufügen.
git commit -m „xxx“ Übermittelt alle Dateien im temporären Speicherbereich an den Warehouse-Bereich, und der temporäre Speicherbereich ist leer.
git remote add origin https://github.com/name/name_cangku.git verbindet das lokale Repository mit dem Remote-Repository.
git push -u origin master Senden Sie die Dateien im Warehouse-Bereich an das Remote-Warehouse.
Wenn Sie nach der Übermittlung keine Änderungen am Arbeitsbereich vornehmen, ist der Arbeitsbereich „sauber“. Es wird eine Meldung angezeigt, dass nichts festgeschrieben werden muss und der Baum bereinigt wird.
Verwandte Empfehlungen: „PHP-Einführungs-Tutorial“
An GitHub senden
Als ich vorher nicht mit Git-Befehlen vertraut war , I Das Übermitteln von Projekten an GitHub erfolgt, indem die Dateien direkt von der Webseite abgerufen und übermittelt werden. Ein wenig beschämend.
git init bedeutet, diese Datei in ein Warehouse umzuwandeln, das von Git verwaltet werden kann. Öffnen Sie nach der Initialisierung die versteckte Datei und Sie können sehen, dass eine .git-Datei vorhanden ist.
git add. Ein Punkt danach zeigt an, dass alle Dateien an den temporären Speicherbereich gesendet werden.
git add ./readme.md/ bedeutet, dass die Datei readme.md unter dieser Datei an den temporären Speicherbereich gesendet wird.
git commit -m „Möchten Sie etwas kommentieren?“ git commit bedeutet, alle Dateien im Staging-Bereich an das lokale Warehouse zu senden. -m gefolgt von einem Kommentar.
git remote add origin https://github.com/name/name_cangku.git bedeutet, dass Sie Ihr lokales Warehouse mit dem Remote-Warehouse auf GitHub verbinden. Sie müssen nur einmal eine Verbindung herstellen und müssen diesen Befehl bei zukünftigen Übermittlungen nicht mehr verwenden. name ist Ihr Github-Name, name_cangku ist Ihr Warehouse-Name. Achten Sie darauf, die .git-Datei am Ende nicht zu übersehen. Denn so bin ich gekommen und habe viele Umwege in Kauf genommen. Zur Erstellung eines neuen Warehouses auf GitHub gibt es viele Tutorials im Internet, daher werde ich hier nicht näher darauf eingehen.
git push -u origin master Sendet das lokale Repository an das Remote-Repository. (Letzter Schritt) Aktualisieren Sie Ihr Remote-Repository, um die von Ihnen übermittelten Dateien anzuzeigen.
Als letztes wurde erwähnt, dass Sie „git add“ zum Staging-Bereich vor „git commit -m“ wiederholen können. Aber git commit sendet alle Dateien, die Sie zuvor im Staging-Bereich gespeichert haben, auf einmal an das lokale Warehouse.
Versionsrückverfolgung und -weiterleitung
提交一个文件,有时候我们会提交很多次,在提交历史中,这样就产生了不同的版本。每次提交,Git会把他们串成一条时间线。如何回溯到我们提交的上一个版本,用git reset --hard + 版本号即可。版本号可以用git log来查看,每一次的版本都会产生不一样的版本号。
回溯之后,git log查看一下发现离我们最近的那个版本已经不见了。但是我还想要前进到最近的版本应该如何?只要git reset --hard + 版本号就行。退一步来讲,虽然我们可以通过git reset --hard + 版本号,靠记住版本号来可以在不同的版本之间来回穿梭。
但是,有时候把版本号弄丢了怎么办?git reflog帮你记录了每一次的命令,这样就可以找到版本号了,这样你又可以通过git reset来版本穿梭了。
撤销
场景1:在工作区时,你修改了一个东西,你想撤销修改,git checkout -- file。廖雪峰老师指出撤销修改就回到和版本库一模一样的状态,即用版本库里的版本替换工作区的版本。
场景2:你修改了一个内容,并且已经git add到暂存区了。想撤销怎么办?回溯版本,git reset --hard + 版本号,再git checkout -- file,替换工作区的版本。
场景3:你修改了一个内容,并且已经git commit到了master。跟场景2一样,版本回溯,再进行撤销。
删除
如果你git add一个文件到暂存区,然后在工作区又把文件删除了,Git会知道你删除了文件。如果你要把版本库里的文件删除,git rm 并且git commit -m "xxx".
如果你误删了工作区的文件,怎么办?使用撤销命令,git checkout --就可以。这再次证明了撤销命令其实就是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
分支
分支,就像平行宇宙,你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。用 Git 和 Github 提高效率的 10 个技巧!这篇也推荐看下。
创建与合并分支
在没有其他分支插进来时,只有一个master主分支。每次你git push -u origin master 提交就是增加一条时间轴,master也会跟着移动。
创建一个other的分支,通过other提交,虽然时间轴向前走了,但是主分支master还在原来的位置。
理论分析完,看一下命令怎么写。
创建分支other,切换到other分支。
gitbranch other gitcheckout other
查看当前所有分支
gitbranch * othermaster
当前的分支会有一个*
用other提交
gitadd ./xxx/ git commit -m"xxx"
other分支完成,切换回master
git checkoutmaster
此时,master分支上并没有other的文件,因为分支还没有合并。
合并分支
gitmergeother
合并完成之后,就可以在master分支上查看到文件了。
删除other分支
gitbranch -d other
我由此想到,在以后工作中,应该是一个开放小组共同开发一个项目,组长会创建很多分支,每一个分支可以交给一个人去开发某一个功能,一个小组共同开发而且不会相互干扰。谁的功能完成了,可以由组长合并一下完成了的分支。哦,完美!
解决合并分支问题
Angenommen, es gibt eine solche Situation: Der Zweig other wurde festgeschrieben, aber zu diesem Zeitpunkt zeigt der Zeiger zurück auf den Master und der Master wird nicht zusammengeführt, sondern git add / commit wird übermittelt. Auf diese Weise kommt es zu einem Konflikt und der Inhalt der Hauptdatei des Hauptzweigs unterscheidet sich vom Inhalt anderer Zweige. Kann nicht zusammengeführt werden! Ändern Sie also den Inhalt der Datei, um ihn konsistent zu machen.
git add git commit commit.
Filiale zusammengelegt.
git log --graph Zweigzusammenführungsdiagramm anzeigen
git branch -d other Löschen Sie den Zweig und die Aufgabe endet.
Zweigverwaltungsstrategie
git merge --no-ff other Deaktivieren Sie den Schnellvorlaufmodus, da im Schnellvorlaufmodus die Zweigverlaufsinformationen nach dem Löschen eines Zweigs verloren gehen . Super detailliertes praktisches Git-Tutorial, selbst ein Narr kann es auf einen Blick verstehen!
FEHLER-Zweig
Jeder Fehler in der Arbeit kann durch einen neuen temporären Zweig behoben werden. Führen Sie nach der Reparatur die Zweige zusammen und löschen Sie dann den temporären Zweig. Wenn Sie jedoch eine Zweigstelle in Betrieb haben, wird Ihr Vorgesetzter Sie bitten, die Fehler in einer anderen Zweigstelle zu beheben.
Sie müssen den Branch, an dem Sie gerade arbeiten, speichern, Git Stash verwenden, um die aktuelle Arbeitssite zu „speichern“ und nach der späteren Wiederherstellung mit der Arbeit fortfahren. Nachdem Sie den Fehler behoben haben, git checkout other und kehren Sie zu Ihrem eigenen Zweig zurück. Verwenden Sie die Git-Stash-Liste, um zu sehen, wo die Arbeit, die Sie gerade „verstaut“ haben, geblieben ist.
An diesem Punkt müssen Sie mit der Arbeit fortfahren:
git stash apply stellt den Stash-Inhalt wieder her, löscht ihn aber nicht, git stash drop löscht den Stash-Inhalt.
Wenn Git Stash Pop wiederhergestellt wird, wird auch der Stash-Inhalt gelöscht.
Wenn Sie die Git-Stash-Liste zum Anzeigen verwenden, können Sie derzeit keinen Stash-Inhalt sehen.
Zusammenfassung: Wenn wir einen Fehler beheben, beheben wir ihn, indem wir einen neuen Fehlerzweig erstellen, ihn dann zusammenführen und ihn schließlich löschen, wenn die anstehende Arbeit nicht abgeschlossen ist site und beheben Sie ihn dann. Nachdem Sie den Fehler behoben haben, git stash pop und kehren Sie zur Arbeitssite zurück.
Zweig löschen
git branch -d + branch kann möglicherweise nicht gelöscht werden, da Git nicht zusammengeführte Zweige schützt.
git branch -D + branch löscht und verwirft Zweige, die nicht zusammengeführt wurden.
Zusammenarbeit mehrerer Personen
git remote Zeigen Sie die Informationen der Remote-Bibliothek an und der Ursprung wird angezeigt. Der Standardname des Remote-Warehouses ist origin
git remote -v zeigt detailliertere Informationen an
git push -u origin master schiebt den Master-Zweig in das Ursprungs-Remote-Warehouse.
git push -u origin other Andere in das Ursprungs-Remote-Repository verschieben.
Fangen Sie den Zweig
Wenn der Konflikt im obigen Bild auftritt,
git pull zieht den neuesten Festschreiben von Rufen Sie es aus dem Remote-Warehouse ab, führen Sie es lokal zusammen und lösen Sie Konflikte. Beim Ausführen von Git Pull
Wenn Git Pull ebenfalls fehlschlägt, müssen Sie in diesem Schritt auch die Verknüpfung zwischen Zweigen angeben. Dann git pull noch einmal.
Der Arbeitsmodus der Zusammenarbeit mit mehreren Personen ist normalerweise wie folgt:
Zuerst können Sie versuchen, Git Push Origin
zu verwenden, um Ihre Änderungen zu pushen; 🎜>Wenn der Push fehlschlägt, weil der Remote-Zweig neuer als Ihr lokaler ist, müssen Sie zunächst mit git pull versuchen, ihn zusammenzuführen.
Wenn beim Zusammenführen ein Konflikt auftritt, lösen Sie den Konflikt und Senden Sie es lokal;
Es gibt keinen Konflikt oder lösen Sie es. Verwenden Sie nach dem Konflikt den Git-Push-Ursprung
, um erfolgreich zu pushen!
Wenn Git Pull keine Tracking-Informationen anzeigt, bedeutet dies, dass die Linkbeziehung zwischen dem lokalen Zweig und dem Remote-Zweig nicht erstellt wurde. Verwenden Sie den Befehl git branch --set-upstream-to origin/.
RebaseGit Rebase „organisiert“ den gespaltenen Commit-Verlauf in einer geraden Linie, was intuitiver aussieht. Der Nachteil besteht darin, dass der lokale gegabelte Commit geändert wurde.
Schließlich besteht der Zweck von git push -u origin master
rebase darin, es für uns einfacher zu machen, Änderungen in historischen Commits anzuzeigen, da gespaltene Commits einen Drei-Wege-Vergleich erfordern.
Tag-ManagementWenn eine APP beispielsweise online gestartet werden soll, fügt sie in der Regel ein Tag (Tag) in die Versionsbibliothek ein. Auf diese Weise wird die Es wird die getaggte Version ermittelt. Wann immer in der Zukunft, bedeutet das Abrufen einer getaggten Version, dass die historische Version zu diesem getaggten Zeitpunkt herausgenommen wird. Daher ist ein Tag auch eine Momentaufnahme des Repositorys.
Obwohl das Git-Tag eine Momentaufnahme des Repositorys ist, ist es tatsächlich ein Zeiger auf einen Commit.
Tag ist eigentlich ein aussagekräftiger Name, der leicht zu merken ist und an einen bestimmten Commit gebunden ist. Tag v2.1 bezieht sich beispielsweise auf eine historische Version namens v2.1
Um ein Tag zu erstellen
Schritte:
git branch, um den aktuellen Zweig anzuzeigen, git checkout Hauptschalter zum Hauptzweig.
Git-Tag
auf dem neuesten Commit platziert. Wenn Sie einen früheren Commit kennzeichnen möchten, verwenden Sie git log, um die Commit-ID des historischen Commits zu finden.
Wenn eine Kommunikations-ID du2n2d9 lautet, wird diese Version durch Ausführen von git tag v1.0 du2n2d9 als v1.0 gekennzeichnet.
git tag Alle Tags anzeigen, Sie können die historische Version des Tags kennen
Die Tags werden nicht in chronologischer Reihenfolge, sondern in alphabetischer Reihenfolge aufgelistet.
git show
git tag -a
Operation tag
git tag -d v1.0 Tag löschen. Denn die erstellten Tags werden nur lokal gespeichert und nicht automatisch an die Fernbedienung übertragen. Daher können falsch eingegebene Tags sicher lokal gelöscht werden.
git push origin
git push origin --tags Alle lokalen Tags, die nicht auf einmal an die Fernbedienung gesendet wurden
Wenn Tag: Push to remote. git tag -d v1.0 löscht zunächst das lokale Tag v1.0. git push origin :refs/tags/v1.0 Remote-Tag v1.0 löschen
Git anpassen
git config --global color.ui true, damit Git angezeigt wird Durch die Farbe sieht die Befehlsausgabe auffälliger aus
Spezielle Dateien ignorieren Erstellen Sie eine .gitignore-Datei und geben Sie die Dateinamen ein, die ignoriert werden müssen. Git ignoriert diese Dateien automatisch. Ich bin in meinen Studien auch auf ein solches Problem gestoßen. Beispielsweise kann die Datei node_modules ignoriert werden.
Dateiprinzip ignorieren: Vom Betriebssystem automatisch generierte Dateien wie Miniaturansichten usw. ignorieren; durch Kompilierung generierte Zwischendateien, ausführbare Dateien usw. ignorieren. Das heißt, wenn eine Datei automatisch von einer anderen generiert wird Datei, dann Es besteht keine Notwendigkeit, automatisch generierte Dateien in das Repository einzufügen, z. B. durch Java-Kompilierung generierte .class-Dateien. Ignorieren Sie Ihre eigenen Konfigurationsdateien mit vertraulichen Informationen, z. B. Konfigurationsdateien, in denen Kennwörter gespeichert sind.
Übermittlung ignorierter Dateien erzwingen. git add -f
git check-ignore -v
Weisen Sie dem Git-Befehl einen Alias zu. Das ist etwas umständlich. Wenn Sie git rebase in Zukunft eingeben möchten, geben Sie ihm einen „Spitznamen“ und nennen ihn git nb. In Zukunft können Sie git nb anstelle von git rebase verwenden.
Zusammenfassung häufig verwendeter Git-Befehle
git config --global user.name „your name“ bindet alle Ihre Git-Repositorys an Ihren Namen
git config --global user.email „Ihre E-Mail“ Lassen Sie alle Ihre Git-Repositorys an Ihre E-Mail-Adresse binden
git init initialisiert Ihr Repository
git add . Senden Sie alle Dateien in den Arbeitsbereich Arbeitsbereich in den temporären Speicherbereich
git add ./
git commit -m "xxx" Senden Alle Dateien im temporären Speicherbereich werden in den Warehouse-Bereich verschoben, und der temporäre Speicherbereich ist leer
git remote add origin https://github.com/name/name_cangku.git Verbinden Sie das lokale Warehouse mit der Fernbedienung Warehouse
git push -u origin master Senden Sie den Hauptfilialenmaster im Lagerbereich an das Remote-Warehouse
git push -u origin
git status Zeigen Sie den Status des aktuellen Warehouse an
git diff Zeigen Sie den spezifischen Inhalt von Dateiänderungen an
git log zeigt den Commit-Verlauf vom aktuellsten bis zum weitesten an
Git Clone + Warehouse-Adresse zum Herunterladen der geklonten Datei
git reset --hard + Versionsnummer zum Zurückverfolgen der Version, die Versionsnummer folgt dem Master beim Festschreiben
git reflog zeigt den Befehlsverlauf an
git checkout –
git rm löscht die Dateien im Repository
git branch Alle aktuellen Zweige anzeigen
git branch
git checkout
git merge
git branch -d git branch -D + git log --graph Zweigzusammenführungsdiagramm anzeigen git merge --no-ff git stash Wenn andere Aufgaben eingefügt werden, „speichern“ Sie die aktuelle Arbeitsstelle. und nach der Wiederherstellung später mit der Arbeit fortfahren Git-Stash-Liste Überprüfen Sie, wohin die Arbeit, die Sie gerade „gespeichert“ haben, gegangen ist Git Stash Apply stellt den Stash-Inhalt wieder her, löscht ihn jedoch nicht Git Stash Drop löscht den Stash-Inhalt git stash pop stellt den Stash-Inhalt wieder her und löscht ihn gleichzeitig git remote Zeigt die Informationen der Remote-Bibliothek und des Ursprungs an. Der Standardname wird angezeigt Remote Warehouse ist Ursprung git remote -v zeigt detailliertere Informationen an git pull holt sich die neueste Übermittlung aus dem Remote Warehouse Down, lokal zusammenführen, im Gegensatz zu git push git Rebase „organisiert“ den gespaltenen Commit-Verlauf in einer geraden Linie, was intuitiver aussieht git tag Alle Tags anzeigen, Sie können den Verlauf kennen Versions-Tag git tag git tag git show git tag -a git tag -d git push origin
Das obige ist der detaillierte Inhalt vonDie von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!