Mein Büro verwendet Git und SourceTree für unsere Versionskontrolle. Dies geschah, weil bei meinem Beitritt keine Versionskontrolle stattfand und SourceTree das einzige System war, das ich jemals verwendet hatte. Ich bin in keiner Weise ein Experte, aber ich bin der erfahrenste unter meinen Mitarbeitern. Ich bin der De-facto-Experte, der dafür verantwortlich ist, dass jeder Git richtig einsetzt und alle Fehler behebt, die er macht.
Ich mache ein Tutorial-Dokument, das Git und SourceTree durchläuft und jeden Schritt des Prozesses erklärt. Im Pull-Prozess können Sie im SourceTree-Dialogfeld die Option "Zusammengeführte Änderungen sofort übernehmen" auswählen. Ich verstehe, was das macht und warum es nützlich ist. Was ich nicht verstehe ist , warum jemand würde nicht diese Funktion verwenden möchten.
Könnte jemand erklären, warum Sie niemals möchten, dass Ihre zusammengeführten Änderungen automatisch übernommen werden? Ich versuche, die Argumentation zu verstehen, damit ich die Nützlichkeit des Features besser erklären und eine Vorstellung davon bekommen kann, auf welche Fallstricke in Zukunft zu achten ist.
Bearbeiten: Ich glaube nicht, dass meine Frage ein Duplikat der verknüpften Frage ist. Die damit verbundene Frage lautet im Großen und Ganzen, wie oft ein Commit durchgeführt werden soll. Ich frage mich, warum man eine bestimmte Funktion im Zusammenhang mit dem Festschreiben von Zusammenführungen in SourceTree nicht verwenden möchte.
quelle
Antworten:
Ich würde diese Funktion nicht nutzen wollen.
Die Tatsache, dass es keine Konflikte gab, bedeutet, dass die Änderungen, die in meinem Zweig zusammengeführt werden, ungefähr nicht in den gleichen Codezeilen sind wie die, die ich vorgenommen habe. Dies bedeutet nicht, dass diese Änderungen mit meinen Änderungen kompatibel sind. Dies bedeutet nicht, dass der Code kompiliert wird oder dass der Code funktioniert oder dass die Tests bestanden werden.
Mit anderen Worten, wenn ich diese Option verwende, bekomme ich möglicherweise ein falsches Commit von Code, das sich möglicherweise nicht in einem guten Zustand befindet und für dessen Behebung ein neues Commit erforderlich ist. Da ich diese Arbeit sowieso mache und dieses falsche Commit niemals, auch nicht aus Versehen , in den Vordergrund stellen sollte (Meine Güte, jemand kann das dann in einen anderen Zweig einbinden !), Sehe ich keinen Grund, dieses Commit im ersten Teil zu erstellen Platz.
quelle
Nach einer Zusammenführung können sich Änderungen an Dateien im lokalen Repository ergeben. Diese Änderungen werden nicht automatisch für das lokale System übernommen, es sei denn, Sie haben "Zusammengeführte Änderungen sofort übernehmen" festgelegt.
Wenn Sie diese Option nicht festlegen, werden die Dateien in SourceTree als nicht festgeschriebene Änderungen angezeigt.
Das liegt daran, dass Git selbst keine Commits ausführt, es sei denn, Sie teilen dies ausdrücklich mit, und SourceTree ist eine Git-GUI. Die Option "Zusammengeführte Änderungen sofort übernehmen" ist weniger eine Option als vielmehr eine Befehlsverknüpfung.
Der Grund, warum Sie diese Funktion nicht verwenden möchten, liegt auf der Hand: Sie möchten das Festschreiben manuell oder gar nicht ausführen.
Nehmen wir an, Sie ziehen Master in Ihren Feature-Zweig. Ein Mitarbeiter arbeitet an einem anderen Feature-Zweig. Dieser Mitarbeiter hat eine Geschichte, in der er Dinge kaputt gemacht hat. Die Zusammenführung enthält Änderungen am gemeinsamen Code, die von diesem Mitarbeiter vorgenommen wurden. Sie - zusammen mit dem Rest des Teams - werden keine zusammengeführten Änderungen vornehmen, bis Sie sicher sind, dass von diesem Mitarbeiter keine Änderungen vorgenommen wurden, die sich auf Ihre Arbeit auswirken.
Nur weil es theoretisch keinen guten Grund gibt, diese Funktion nicht zu verwenden, kann es in der Realität eine Reihe von guten Gründen geben. In Bezug auf Ihr Tutorial würde ich nur sagen, dass "99 mal von 100, das ist die Option, die Sie verwenden möchten". Ich denke nicht, dass Sie wirklich ins Detail gehen müssen, um es nicht zu verwenden, besonders wenn die anderen neu in der Versionskontrolle sind. Das hängt alles davon ab, wie detailliert Sie das Tutorial erstellen möchten.
quelle
Wenn Sie einen Beitrag verwenden commit zum automatischen Commits schieben (wie in /programming//a/7925891/6781678 ), könnten Sie müssen diese Option zu vermeiden , einige begehen von zweifelhafter Qualität drängen.
Ich würde auch nie verwenden.
quelle