Wir bereiten derzeit eine Version für die Qualitätssicherung vor, indem wir Dev wie folgt mit GitHub zusammenführen und manuell Folgendes tun:

  • Gehe zum Repository
  • Fordern Sie einen Pull für das Repo an (klicken Sie auf Pull Request).
  • Richten Sie die Zusammenführung von Dev mit QA ein (wählen Sie links QA, rechts Dev).
  • Fügen Sie einen Kommentar "Dev in QA zusammenführen" hinzu und klicken Sie auf "Pull-Anfrage erstellen"
  • Ich bin der einzige, der daran arbeitet, also niemals Konflikte
  • Erstellen Sie die Pull-Anforderung (klicken Sie auf Pull-Anforderung zusammenführen).
  • Bestätigen Sie die Pull-Anforderung (klicken Sie auf Zusammenführen bestätigen).

Gibt es eine Möglichkeit, dies in git oder hub zu tun, einschließlich des Datensatzes der Pull-Anforderung, damit ein Skript erstellt werden kann?

3
Yimin Rong 22 Juni 2018 im 20:53

3 Antworten

Beste Antwort

Wenn Sie dies mit hub tun möchten, wie Sie vorgeschlagen haben, können Sie einfach:

  • Erstellen Sie eine Datei pull_request_template.md mit dem Inhalt Merging Dev into QA. Wenn Sie möchten, können Sie der Datei weitere Zeilen hinzufügen. Die erste Zeile fungiert als Titel, der Rest ist der Text.
  • hub pull-request -F pull_request_template.md -b Dev -h QA | hub merge, um eine PR zu öffnen und zusammenzuführen

Hinweis: Da hub als Drop-In-Ersatz für git gedacht ist, sollten Sie den Befehl im Kontext des lokalen Verzeichnisses Ihres Repos ausführen.

Weitere Informationen zu diesen Befehlen finden Sie in den folgenden Dokumenten: hub, < a href = "https://hub.github.com/hub-pull-request.1.html" rel = "nofollow noreferrer"> pull-request und hub-merge.

2
Hawkins 27 Juni 2018 im 23:26

Es wird nicht empfohlen, diese Befehlsfolge generell zu automatisieren.

Einfach, weil viel schief gehen kann, wenn Sie es am wenigsten erwarten (oder viele Bedingungen berücksichtigt werden müssen). Wenn Sie der einzige sind, der an dem Projekt arbeitet, scheint dies akzeptabel zu sein. Beachten Sie jedoch, dass die Zusammenführung möglicherweise tatsächlich fehlschlägt. Auch wenn Sie selbst an dem Projekt arbeiten.

Das Prinzip der Pull-Anfragen hat auch seinen Hauptvorteil - Codeüberprüfung . Idealerweise sollten Sie eine solche Anfrage niemals annehmen, ohne zu überprüfen, ob wirklich alles so ist, wie es sein sollte. Daher sehe ich mir keinen Grund, warum Sie das tun möchten; Das Erstellen eines regulären Merge-Commits (und möglicherweise das Hinzufügen eines Tags) in regulärem Git erscheint vernünftiger.

Aber wenn Sie das wirklich wollen ...

POST-Anfrage mit JSON an https://api.github.com/repos/:owner/:repo/pulls senden:

{
  "title": "Merging Dev into QA",
  "head": "dev",
  "base": "qa"
}

Um die Pull-Anfrage zu erstellen. Die Antwort enthält in ['number'] die Kennung der Pull-Anforderung oder den Header 'Location', der den URI der gerade erstellten Pull-Anforderung enthält.

Um die Pull-Anforderung zusammenzuführen, senden Sie eine PUT-Anforderung an: https://api.github.com/repos/:owner/:repo/pulls/:number/merge

Weitere Informationen zur API (und zur Authentifizierung bei der API) finden Sie unter: https://developer.github.com / v3 /

2
petrpulc 27 Juni 2018 im 14:27

Ich bin mir nicht sicher, ob ich "die Aufzeichnung der Pull-Anfrage einschließen soll" (da es sich um eine ul-Version der Zusammenführung handelt), aber ich habe mein eigenes Skript, um Hoffnung freizugeben, hilft Ihnen:

git checkout dev

Dev Branch wechseln

git fetch https://gitlab.com/xx/xx.git 

Änderungen vor dem Hauptzweig abrufen

git commit -a -m "changes"

Übernehmen Sie Ihre lokalen Änderungen:

git pull https://gitlab.com/xx/xx.git

Pull-Anfrage vom Upstream erhalten

git checkout master

Wechseln Sie jetzt zum Hauptzweig

git merge --no-commit --no-ff dev

Wenn Sie vor dem Zusammenführen eine Überprüfung durchführen möchten, verwenden Sie den obigen Kommentar, wenn Sie die Parameter nicht entfernen

git push origin master

Übertragen Sie Ihre Änderungen in den Hauptzweig

git reset --merge

Wenn Sie diese Änderungen unterstützen möchten, setzen Sie diese Zusammenführung einfach zurück.

Bearbeiten: Sie können den Blow-Befehl als Bash- oder Shell-Skript verwenden

0
Payam Khaninejad 7 Juli 2018 im 06:24