Git: Wie wähle ich ein Commit aus einem Zweig aus und erstelle eine Pull-Anfrage für einen anderen Zweig?

Lesezeit: 3 Minuten

Ich habe zwei Filialen dev & master. Ich verwende Bitbucket.

Ich muss einen Teil des Commits aus dem Entwicklungszweig herauspicken.

Dann muss eine Pull-Anfrage für erstellt werden master Zweig.

Als meine dev Die Umgebung hat so viele Dinge, von denen einige nicht direkt miteinander verschmelzen können master.

Nehmen Sie also Commit , aus dev Zweig. Nimm sie zusammen. Erstellen Sie eine Pull-Anfrage für die Zusammenführung master Zweig.

  • Durch die Verwendung von GIT können Sie bestimmte Commits anhand der Commit-ID auswählen, unabhängig vom Zweig. Zum Beispiel: git Cherry-pick

    – Verrückt

    8. Juli 2020 um 6:27


  • So danach git checkout dev, git cherry-pick <id 1>, git cherry-pick <id 2>. Wie erstellt man PR für diejenigen, die sich die Hauptniederlassung aussuchen?

    – Mächtig

    8. Juli 2020 um 6:30 Uhr


  • Sie können in Ihrem Hauptzweig einen neuen Zweig erstellen. Cherry wählt die gewünschten Commits aus und erstellt dann eine PR für diesen neuen Zweig. In Ihrem Fall enthält es Ihre ausgewählten Commits

    – Verrückt

    8. Juli 2020 um 6:31 Uhr


  • Also werde ich einen neuen Zweig von dev erstellen, diese Commits auswählen und diesen Zweig zusammenführen oder eine Pull-Anfrage für den Master erstellen?

    – Mächtig

    8. Juli 2020 um 6:32


  • Es ist keine Zusammenführung erforderlich. Cherry-Pick nimmt die gewünschten Commits und platziert sie auf Ihrem Master. Anschließend können Sie diese Commits an den neuen Zweig übertragen und eine PR erstellen

    – Verrückt

    8. Juli 2020 um 6:33


Benutzeravatar von MaD
Verrückt

Sie können verwenden

git cherry-pick <commit id>

um bestimmte Commits auszuwählen

Um den Zyklus zu schließen und eine PR vom Master zu erstellen. Wir können die folgenden Schritte ausführen:

Gehen Sie davon aus, dass Sie auf der master Zweig:

git checkout -b myNewBranch // this will create a new branch named myNewBranch
git cherry-pick <commitID 1> // this will take the commit with the commit ID 1 and 
                             // attempt to place it on top of the master branch. 
                             // Note however, there might be conflicts to resolve
git cherry-pick <commitID 2> // this will take the commit with the commit ID 2 and place on top of the master branch
git push origin/<some branch name> // will push the changes to remote. Usually origin/<local branch name>

Anschließend können Sie je nach Plattform eine Pull-Anfrage stellen. Es kann also über die GUI erfolgen. Sei es auf einer GitHub-Plattform oder DevAzure usw. In Ihrem Fall über die BitBucket-GUI.

Randbemerkung: Die obigen Schritte dienen der Einfachheit. Es ist auch möglich, den Rosinenpick mit einer Linie zu machen. Etwa so:

git cherry-pick <commitID 1> <commitID 2>

  • Wir müssen Commit aus dem Entwicklungszweig auswählen. Daher wird ein neuer Zweig erstellt dev. Wählen Sie dann den Commit von ihnen aus. Dann führen Sie diesen neuen Zweig über PR zum Master zusammen. Richtig?

    – Mächtig

    8. Juli 2020 um 8:25


  • Wenn Sie Commits vom Entwickler zum Master auswählen müssen. Dann erstellen Sie einen neuen Zweig auf dem Master. Sie wählen die Commits vom Entwickler aus. Anschließend verschieben Sie den Zweig auf „Remote“ und verwenden die Bitbucket-GUI-Prozedur, um den PR zu erstellen. Wie in der Antwort beschrieben. Wenn weitere Unterstützung erforderlich ist (bezüglich der Zusammenführung). Ich glaube, Sie können hier die Antwort von StackOverflow finden oder eine andere Frage stellen, wenn keine passende Antwort gefunden wird.

    – Verrückt

    8. Juli 2020 um 10:09


  • Wenn die Antwort Ihre Frage gelöst hat. Bitte markieren Sie es als die richtige Antwort

    – Verrückt

    9. Juli 2020 um 5:45 Uhr

Fork original-repo as "your-repo"

git clone your-repo
cd your-repo
git checkout dev
git pull //to get all your commits to local
git checkout master
git pull //to make sure branch is upto date
git cherry-pick commit-id
git push //commits the cherry-picked commits to the master branch of forked repo

Raise PR from Forked repo "your-repo" master branch to "original-repo" master branch

1450490cookie-checkGit: Wie wähle ich ein Commit aus einem Zweig aus und erstelle eine Pull-Anfrage für einen anderen Zweig?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy