Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

爱喝马黛茶的安东尼
Freigeben: 2019-10-21 17:59:20
nach vorne
3484 Leute haben es durchsucht

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

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"你的邮箱"
Nach dem Login kopieren

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

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

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.

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

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 个技巧!这篇也推荐看下。

创建与合并分支

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

在没有其他分支插进来时,只有一个master主分支。每次你git push -u origin master 提交就是增加一条时间轴,master也会跟着移动。

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

创建一个other的分支,通过other提交,虽然时间轴向前走了,但是主分支master还在原来的位置。

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

理论分析完,看一下命令怎么写。

创建分支other,切换到other分支。

gitbranch other
gitcheckout other
Nach dem Login kopieren

查看当前所有分支

gitbranch
* othermaster
Nach dem Login kopieren

当前的分支会有一个*

用other提交

gitadd ./xxx/
git commit -m"xxx"
Nach dem Login kopieren

other分支完成,切换回master

git checkoutmaster
Nach dem Login kopieren

此时,master分支上并没有other的文件,因为分支还没有合并。

合并分支

gitmergeother
Nach dem Login kopieren

合并完成之后,就可以在master分支上查看到文件了。

删除other分支

gitbranch -d other
Nach dem Login kopieren

我由此想到,在以后工作中,应该是一个开放小组共同开发一个项目,组长会创建很多分支,每一个分支可以交给一个人去开发某一个功能,一个小组共同开发而且不会相互干扰。谁的功能完成了,可以由组长合并一下完成了的分支。哦,完美!

解决合并分支问题

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

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.

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

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

Die von Daniel zusammengefassten Git-Nutzungsfähigkeiten sind sehr praktisch

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/.

Rebase

Git 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-Management

Wenn 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 -Tag, Standard ist HEAD. Beispielsweise wird das Standard-Tag von git tag v1.0

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 Tag-Informationen anzeigen.

git tag -a -m "", erstellt ein Tag mit einer Beschreibung. -a gibt den Labelnamen an und -m gibt den Beschreibungstext an. Verwenden Sie „show“, um die Anweisungen anzuzeigen.

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 Ein Tag an die Fernbedienung senden

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 Überprüfen Sie, warum Git die Datei ignoriert.

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 .// Senden Sie die -Dateien im Arbeitsbereich an den temporären Speicherbereich

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 Senden Sie andere Filialen an das Remote-Warehouse

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 – Macht den Befehl rückgängig und ersetzt die Dateien im Arbeitsbereich durch Dateien im Repository. Ich fühle mich wie Strg + Z in der Git-Welt

git rm löscht die Dateien im Repository

git branch Alle aktuellen Zweige anzeigen

git branch branch

git checkout Zum Branch wechseln

git merge Branch zusammenführen

git branch -d

git branch -D + Nicht zusammengeführte Zweige zwangsweise löschen und verwerfen

git log --graph Zweigzusammenführungsdiagramm anzeigen

git merge --no-ff Deaktivieren Sie den Schnellvorlaufmodus beim Zusammenführen von Zweigen, da in diesem Modus Informationen zum Zweigverlauf verloren gehen

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 Der Standardwert ist HEAD. Zum Beispiel Git-Tag v1.0

git tag Die Versionsnummer ist die Zeichenfolge daneben.

git show

git tag -a -m "" Erstellen Sie ein Tag mit einer Beschreibung. -a gibt den Tag-Namen an, -m gibt den Beschreibungstext an

git tag -d löscht das Tag

git push origin 🎜>

git push origin --tags Alle lokalen Tags, die nicht auf die Fernbedienung übertragen wurden, auf einmal übertragen

git push origin :refs/tags/ Remote-Tags löschen

git config --global color.ui true ermöglicht Git die Anzeige von Farben, wodurch die Befehlsausgabe auffälliger aussieht

git add -f Übermittlung ignorierter Dateien erzwingen

git check-ignore -v Überprüfen Sie, warum Git die Datei ignoriert

gitbranch other

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!

Verwandte Etiketten:
Quelle:jianshu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!