Xcode: Änderungen abrufen

In diesem Artikel geht es um seltsame Funktionen, die Xcode bietet, nämlich Fetch Changes . Wir gehen davon aus, dass diese Funktion so funktioniert, wie wir denken, aber sie macht eine völlig andere.

Das Thema

Die meiste Zeit als iOS-Entwickler haben wir möglicherweise Fetch ChangesFunktionen verwendet, um unseren aktuellen Arbeitsbereich mit Remote-Änderungen zu aktualisieren. War Fetch Changesaber nicht so gearbeitet 😂. Lassen Sie uns eintauchen, um die Funktion wirklich zu verstehen.

Git

Bevor wir in diese Themen eintauchen, wollen wir die Designphilosophie von git verstehen. Git wurde entwickelt, um ein verteilteres Modell zu unterstützen, anstatt ein zentrales Repository wie Apache Subversion (SVN) zu haben. Es verfügt über ein Remote-Repository , das auf einem Server gespeichert ist, und ein lokales Repository , das auf dem Computer jedes Benutzers gespeichert ist. Das bedeutet, dass der Code nicht nur auf einem zentralen Server gespeichert wird, sondern die vollständige Kopie des Codes auf allen Maschinen der Entwickler vorhanden ist. Git verarbeitet Inhalte in Snapshots, einen für jeden Commit, und weiß, wie die Changesets zwischen zwei Snapshots angewendet oder zurückgesetzt werden.

Git-Datenfluss

Quelle Google

Das obige Datenflussdiagramm erklärt, wie die Daten schrittweise vom lokalen Arbeitsbereich in das Remote-Repository übertragen werden.

Xcode-Quellcodeverwaltung

Xcode 9 und höher integriertes Git, um Entwicklern die Verwendung der Quellcodeverwaltung mit ihren Apps zu erleichtern. Die meiste Verwendung der Befehlszeile ist nicht mehr erforderlich, um Git und GitHub mit Ihren iOS-Projekten zu verwenden. Die nützlichsten Funktionen wie Clone , Commit , Pull , Push sind direkt in Xcode integriert!

Verwenden Sie Umschalt + cmd + Punkt, um den .git-Ordner anzuzeigen

Alle Zweigstellen werden gespeichert in Alle lokalen Zweigstellen werden gespeichert in Alle entfernten Zweigstellen werden gespeichert in.git/refs
.git/refs/heads
.git/refs/remotes

Okay, hier kommt das eigentliche Problem, viele iOS-Entwickler denken, dass Fetch Changes den lokalen Branch mit einem Remote-Branch aktualisiert. aber es funktioniert anders.

Xcode-Abrufänderungen

Die Fetch ChangesFunktion erledigt nur die halbe Arbeit von git pull. Es bringt nur die Remote-Änderungen in Ihr lokales Repository, wendet sie jedoch nicht auf Ihren aktuellen Arbeitsbereich an. Grundsätzlich führt Fetch Changes git fetchcmd im Hintergrund aus, das Commits, Dateien und Refs von einem Remote-Repository in Ihr lokales Repository herunterlädt.

git fetch betrifft nur deine .git/refs/remotes

Wenn in der Fernbedienung Änderungen vorgenommen wurden, können Sie in den Xcode-Dateien einen Abwärtspfeil sehen, der darauf hinweist, dass neue Änderungen zu überprüfen sind.

Screenshot eines Beispielprojekts nach Änderungen beim Abrufen

Änderungen überprüfen

git diff main origin/mainoder git diff master origin/masterkann bei der Überprüfung der Änderungen mit Remote-Kopie helfen.

Wenn Sie mit diesen Updates zufrieden sind, git mergekönnen Sie die Änderungen in unserem aktuellen Arbeitsbereich zusammenführen.

Hinweis : Wenn Sie sich nicht sicher sind, ob Sie die Remote-Kopie mit der aktuellen Arbeitsbereichskopie zusammenführen, dann nur git fetchzuerst. es kann eine Gelegenheit geben, sie zuerst zu überprüfen.

Git Pull

Der Befehl git pullbringt die Änderungen aus dem Remote-Repository in den aktuellen Arbeitsbereich. Normalerweise git pullläuft git fetchdas lokale Repository von gefolgt aktualisieren git mergezu bringen , die aktualisierten Änderungen in den aktuellen Arbeitsbereich.

git pull= git fetch+fetch merge

Im Gegensatz zu git fetchdem es Ihre einzige beeinflusst .git/refs/remotes/,
git pullsowohl Einfluss auf Ihre .git/refs/remotes/und.git/refs/heads/

Das war's für dieses Mal! . Fühlen Sie sich frei, zu kommentieren, wenn Sie Fragen haben, und folgen Sie, um Benachrichtigungen über zukünftige Artikel zu erhalten.

„Sei der leitende Ingenieur, den du als Junior brauchtest.“ - Jemand

Suggested posts

Codierbar: Umgang mit falschen Enum-Werten

Codierbar: Umgang mit falschen Enum-Werten

Schutz Ihrer Codebasis: Umgang mit unerwarteten Enum-Werten Haben Sie jemals eine Situation erlebt, in der Ihre App aus dem Nichts abstürzte, was bei einer Untersuchung ergab, dass das Backend einen Wert für ein bestimmtes Enum-basiertes Feld bereitstellte, das nicht innerhalb des Enum im Code vorhanden ist? Betrachten Sie das folgende Beispiel: Ohhh, ich liebe Tee. Aber was ist, wenn wir favouriteBeverage in den JSON-Daten von Tea in Juice ändern (ein Wert, der in der Aufzählung Beverage nicht vorhanden ist)? Konzentrieren Sie sich auf den Teil der Meldung: „Beverage kann nicht von ungültigem String-Wert Juice initialisiert werden.“ Wenn es sich um eine tatsächliche App anstelle eines Playground-Codes gehandelt hätte, wäre die App abgestürzt. Wie sorgen wir also dafür, dass unsere App, selbst wenn das Backend einen ungültigen Wert in der Antwort sendet, damit umgehen kann, anstatt direkt abzustürzen? Einer der Wege und mein persönlicher Favorit:

Leichter Login-Formular-Validator mit Combine

Leichter Login-Formular-Validator mit Combine

Da ich einen Artikel zur Implementierung eines Validators für das Anmeldeformular in RxSwift geschrieben habe, habe ich mich entschieden, einen für die gleiche Idee mit dem Apple Combine-Framework zu schreiben. Fast alle mobilen Apps erfordern ein Anmeldeformular und Sie müssen die Benutzeranmeldeinformationen validieren, bevor Sie mit dem Anmeldevorgang fortfahren.

Related posts

Was macht einen Podcast einflussreich?

Was macht einen Podcast einflussreich?

Letzte Woche fiel mir eine Pressemitteilung auf, die über PressGazette (eine britische Nachrichten-Website für Medien) verschickt wurde. In dem Artikel wurde angekündigt, dass Acast, das skandinavische Podcast-Hosting- und Werbeunternehmen, ein Konsortium der „wahrscheinlich einflussreichsten“ Verlage im Podcasting leiten werde.

Gefährliche Gespräche

Gefährliche Gespräche

Wenn wir auf diesem Planeten weiterhin erfolgreich sein wollen, müssen wir gefährliche Gespräche führen. Diejenigen, die das in Frage stellen, was wir getan haben, was wir tun und was wir derzeit weiterhin tun werden (oder planen).

3 bewährte Möglichkeiten, Ihre Schreibfähigkeiten zu verbessern

Die Vorteile des Schreibens und Strategien, die Ihnen dabei helfen

3 bewährte Möglichkeiten, Ihre Schreibfähigkeiten zu verbessern

Im Jahr 2022, mit der Veröffentlichung von GPT-3, scheinen Schreibfähigkeiten an Bedeutung zu verlieren. Mit KI können auch Menschen mit schlechten Schreibkenntnissen hochwertiges Personal hervorbringen.

Die Goodreads Reading Challenge ist giftig

Die Goodreads Reading Challenge ist giftig

Der Juckreiz in meiner Hand breitete sich aus, als ich mit dem örtlichen Buchhändler um ein weiteres Buch verhandelte. Dieses Buch würde wie die anderen, die ich kürzlich gekauft habe, seinen Thron auf meinem Stapel „To Be Read“ (TBR) finden; und trotzdem habe ich es gekauft.