Kann ich zwei Dateien bearbeiten und dann mit dem webbasierten GitHub-Editor einen Commit durchführen?


75

GitHub hat die nette Funktion der webbasierten Dateibearbeitung. Es scheint jedoch, dass ich nach dem Bearbeiten einer Datei die Änderungen für diese Datei festschreiben muss, bevor ich fortfahren kann. Gibt es eine Möglichkeit, zwei oder mehr Dateien zu bearbeiten und dann ein Commit für alle Änderungen vorzunehmen?

Ich denke, das wäre besser, da zu viele unnötige Commits nerven.


Wenn GitHub Mainstream werden möchte , sollten sie die gesamte Git-Oberfläche im Web für diejenigen implementieren, die Bash nicht kennen.
Ciro Santilli 法轮功 冠状 病 六四 事件 18

Antworten:


56

Es gibt eine webbasierte Problemumgehung:

  1. Erstellen Sie einen temporären Zweig und wechseln Sie zu diesem.
  2. Bearbeiten Sie mehrere Dateien, schreiben Sie jede Datei separat fest.
  3. Pull-Anfrage stellen;
  4. Pull-Anforderung zusammenführen und temporären Zweig löschen.

Ich verwende diese Methode auf einem PC, auf dem ich git nicht installieren möchte.


19
Es funktioniert großartig. Nur eine wichtige Sache: Wenn Sie die Pull-Anforderung validieren und zusammenführen, stellen Sie sicher, dass Sie Squash und Merge bestätigen auswählen und nicht Merge bestätigen (Standard). help.github.com/articles/about-pull-request-merge-squashing
Mar Cnu

Können Sie die Schritte 3 und 4 erweitern? Ich möchte 2 Dateien in meinem Repo-Zweig bearbeiten und dann eine PR mit nur einem Commit mit den beiden Änderungen einreichen. Wie kann ich eine Pull-Anfrage (gegen meine eigene Gabel?) Stellen und zusammenführen? Ich habe keinen Schreibzugriff auf das Original-Repo.
Dan Dascalescu

2
1. Erstellen Sie Ihre Gabel und Ihren temporären Zweig. 2. Bearbeiten Sie die Dateien im temporären Zweig. 3.1. Squash legt sich für Ihre Hauptniederlassung fest. 3.1.1. Klicken Sie in einem temporären Zweig auf "Pull-Anfrage erstellen" und stellen Sie sicher, dass "Basis" Ihr Master ist. Erstellen Sie eine 'lokale' Pull-Anfrage. 4. Klicken Sie auf "Merge Pull Request" und füllen Sie die Commit-Nachricht aus. Drücken Sie die grüne Taste "Squash bestätigen und zusammenführen". Jetzt haben Sie Single Commit mit 2 bearbeiteten Dateien auf Ihrem 'Master'. 5. Um die Pull-Anfrage an den Ursprung weiterzugeben, erstellen Sie eine Pull-Anfrage und geben Sie das ursprüngliche Repo als 'Basis' an. Wenn eine Pull-Anfrage erstellt wird, können Autoren Ihre Änderungen überprüfen und zusammenführen.
Victor Istomin

Ich denke jedoch, dass Sie diesen Trick mit temporärer Verzweigung nicht benötigen, wenn Sie ihn in ein anderes Repository übertragen möchten. Ändern Sie einfach die Dateien in Ihrem Fork nach Ihren Wünschen und füllen Sie eine Pull-Anfrage an das Ursprungs-Repository aus. Der Origin-Betreuer kann bei Bedarf Ihre Pull-Anforderung und Squash-Commits zusammenführen.
Victor Istomin

1
Die Frage "Gibt es eine Möglichkeit, zwei oder mehr Dateien zu bearbeiten und dann ein Commit durchzuführen?" - Die Antwort führt zu mehreren Commits plus einem Merge-Commit. Squashing statt Zusammenführen kann funktionieren, ist jedoch nicht verfügbar, wenn Dateien in einer Pull-Anforderung aus einem Repository bearbeitet werden, auf das kein Schreibzugriff besteht.
fwyzard

5

Ja, es gibt eine Möglichkeit, 2 Dateien zu bearbeiten, wenn Sie Ihre erste Datei bereits in der Webbrowser-Ansicht von GitHub bearbeitet haben. Es basiert auf den Anweisungen hier:

/webapps/95940/how-can-i-change-multiple-files-and-submit-them-in-one-pull-request-on-github

Die Zusammenfassung und die geklärten Schritte sind:

  1. Bearbeiten Sie Ihre erste Datei, indem Sie im Repository eines anderen Benutzers auf das Symbol Bearbeiten klicken. Speichern Sie diese Bearbeitung in Ihrem ersten Commit. GitHub erstellt automatisch einen neuen Zweig / eine neue Verzweigung für Sie, wie "Patch-1".
  2. Erstellen Sie noch keine Pull-Anfrage.
  3. [Dieser Teil ist der schwierigste, da er nicht offensichtlich ist.] Wechseln Sie zur Liste der Repositorys in Ihrem Profil unter github.com ➔ click icon at top-right ➔ Your Repositories. Gehen Sie dann zu dem soeben erstellten gegabelten Repository und wechseln Sie zum Zweig "Patch-1".
  4. Nehmen Sie weitere Änderungen an einer anderen Datei vor und übertragen Sie sie in Ihren "Patch-1" -Zweig. Wenn Sie fertig sind, klicken Sie oben auf die Registerkarte "Pull Requests" und dann auf Compare & Pull Requestoder Create Pull Request. Sie sollten Ihre 2 Commits in dieser Pull-Anfrage sehen.
  5. Wenn Sie keine Schaltfläche "Pull-Anfrage erstellen" sehen, öffnen Sie eine URL wie diese in Ihrem Webbrowser: https://github.com/TargetPerson/TargetGitRepo/compare/master...MyGithubUsername:patch-1
  6. Daraufhin wird eine Ansicht angezeigt, in der Sie Ihre Änderungen mit dem ursprünglichen Zielzweig im Repository des anderen Benutzers vergleichen können. Drücken Sie dann die Create Pull RequestTaste.

Bei Punkt 4 fand ich zwei Schaltflächen "Pull Requests". Ich musste auf die untere und dann auf "New Pull Request" klicken, um zu einer Vergleichsseite zu gelangen. Dann wählte ich den Zweig "Patch-1" und fuhr fort.
14.

1

Der GitHub Web Flow unterstützt eine Datei pro Commit. Um einem einzelnen Commit mehrere Dateien hinzuzufügen, müssen Sie das Repository lokal klonen, die Dateien bearbeiten, dann festschreiben und pushen.

Die Befehlszeile würde folgendermaßen aussehen:

  1. cd in das Verzeichnis

  2. Stellen Sie alle geänderten Dateien mit bereit

    git add <file-1> <file-2> <etc>
    
  3. Commit mit

    git commit -m'<your-message>
    

    oder wenn Sie einen externen Editor starten möchten

    git commit
    
  4. Senden Sie den Verlauf / Commit mit

    git push
    

14
Ich habe gelernt, wie man sich verpflichtet und pusht, nachdem ich das Repo auf local geklont habe. Wie in der Frage angegeben, mache ich mir jedoch Sorgen um den webbasierten Editor , da ich manchmal nur Dinge in meinem Google Chrome tun möchte. Es wäre sehr schön, wenn sie mehr als eine Datei im GitHub Web Flow unterstützen würden.
Shenbbinmeng

Nicht das, wonach ich gesucht habe, aber zumindest ist die Antwort klar: "Der GitHub Web Flow unterstützt eine Datei pro Commit."
fwyzard

1

Nachtrag zu dem, was @VictorIstomin und @MarCnu sagten:

Wenn Sie anstelle des Inhalts dieser Dateien eine Reihe von Dateinamen bearbeiten möchten, befolgen Sie einfach die Anweisungen von Victor, müssen jedoch nicht "Squash and Merge bestätigen". Sie können einfach auf "Zusammenführung bestätigen" klicken (dies sollte die einzige Option sein, da Sie den Dateiinhalt nicht bearbeitet haben.

Die Frage wurde gut beantwortet und wollte dies nur für zukünftige Zuschauer klären, die möglicherweise Dateinamen ändern, was ich normalerweise in GitHub mache.


0

Nehmen wir an, das fragliche Repo ist https://github.com/repoUsername/repoName

  1. Verzweigen Sie das Repository, indem Sie auf die ForkSchaltfläche oben auf der Repo-Seite klicken .

Geben Sie hier die Bildbeschreibung ein

  1. Bearbeiten Sie so viele Dateien, wie Sie möchten, über den webbasierten Datei-Editor in Ihrem Repo-Zweig. Übernehmen Sie jede Datei einzeln.

  2. Gehen Sie zu https://github.com/repoUsername/repoName/pulls und drücken Sie die große grüne New pull requestTaste.

Geben Sie hier die Bildbeschreibung ein

  1. Klicken Sie auf der nächsten Seite auf den compare across forksLink.

Geben Sie hier die Bildbeschreibung ein

  1. Choose a Head RepositoryWählen Sie dann im Feld Ihre Gabel aus

Geben Sie hier die Bildbeschreibung ein

  1. Create pull requestDie Schaltfläche wird angezeigt. Klick es.

Geben Sie hier die Bildbeschreibung ein

  1. Geben Sie den Titel und die Beschreibung Ihrer Pull-Anfrage ein und klicken Sie Create pull requesterneut auf die Schaltfläche.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.