Wie kann ich zwei Git-Zweige in der Bitbucket-Pipeline unterscheiden?

Lesezeit: 3 Minuten

Benutzeravatar von Abdallah Alsamman
Abdallah Alsammann

Hintergrund

Ich möchte sicherstellen, dass alle Commit-Nachrichten auf dem gepushten Zweig ein Zeitprotokoll enthalten

dh. add readme /spend 5m

Problem

Ich möchte den Commit-Diff zwischen zwei Git-Zweigen in der Bitbucket-Pipeline erhalten,

Dies ist meine Yaml-Pipeline-Konfiguration:

pipelines:
  default:
    - step:
        script:
          - git log $BITBUCKET_BRANCH --oneline --not master

$BITBUCKET_BRANCH ist der Zweig, auf den die Pipeline wirkt.

aber die Pipeline gibt einen Fehler zurück, wenn sie versucht, mit dem Master zu vergleichen

+ git log $BITBUCKET_BRANCH --oneline --not master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Beachten Sie, dass der Einrichtungsschritt in der Pipeline (dies ist von Bitbucket vordefiniert und ich kann es nicht ändern)

git clone --branch="abdullah-s/bitbucketpipelinesyml-created-online-wit-1489917130851" --depth 50 https://x-token-auth:[email protected]/abdullah-s/webook.git $BUILD_DIR;
git reset --hard ac61f080a28428bdd885735374164577a2b0aa43;
git remote set-url origin [email protected]:abdullah-s/webook.git

Im ersten Befehl des Setups klont Bitbucket nur einen Zweig aus meinem Repo

Was ich versucht habe

Ich habe versucht, Meister zu ziehen

- git checkout -b master
- git pull origin master
- git log $BITBUCKET_BRANCH --oneline --not master

habe aber einen fehler bekommen

+ git pull origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Frage

Wie kann ich zwei Zweige in der Bitbucket-Pipeline vergleichen?

Wie Sie zu Recht betonen, klonen Bitbucket-Pipelines nur den spezifischen Zweig, der den Build ausgelöst hat.

Als solche ist die RefSpez wird auf den spezifischen Zweig gesetzt, und Sie können andere Zweige nicht zusammenführen oder unterscheiden.

Wenn der Build beispielsweise auf dem Entwicklungszweig ausgelöst wurde, wird die folgende Refspec festgelegt:

[remote "origin"]
    url = [email protected]:xxxxxx
    fetch = +refs/heads/develop:refs/remotes/origin/develop
[branch "develop"]
    remote = origin
    merge = refs/heads/develop

Wenn Sie sich die verfügbaren Zweige ansehen, sehen Sie Folgendes:

+ git branch -a
* develop
  remotes/origin/develop

Sie können den folgenden Befehl ausführen:

git fetch origin "+refs/heads/*:refs/remotes/origin/*"

um alle anderen Äste/Tags einzuziehen

From bitbucket.org:xxxx/xxxxx
 * [new branch]      master     -> origin/master
 * [new branch]      release    -> origin/release
 * [new tag]         xxxx -> xxxx

  • Danke, das hat wie ein Zauber funktioniert! Ich habe diese beiden Befehle auch zu meiner hinzugefügt bitbucket-pipelines.yml Datei: - git fetch origin "+refs/heads/*:refs/remotes/origin/*" - git diff --name-status origin/master origin/development Angenommen, der zusätzliche zu vergleichende Zweig wäre “Entwicklung”

    – Marco Z.

    9. September 2019 um 23:22 Uhr


  • Ich bekomme immer noch fatal: ambiguous argument 'master': unknown revision or path not in the working tree. wenn ich a mache git diff master ./someFile.txt

    – Chris F

    10. Dezember 2019 um 0:23 Uhr


  • Diese Antwort hat mich vor einem Abgrund der Verzweiflung bewahrt – danke!

    – mikrolang

    23. Oktober 2020 um 6:45 Uhr

  • Sollte als richtige Antwort markiert sein, vielen Dank!

    – künstlerisch

    6. Februar 2022 um 20:55 Uhr

Ich habe keine vollständige Antwort auf Ihre Frage, sondern nur einen Hinweis: Sie können das Berechtigungsproblem umgehen, indem Sie Ihr Kennwort als SECRET-Umgebungsvariable speichern und die Pipeline dann beim Ziehen als Sie selbst identifizieren.

https://confluence.atlassian.com/bitbucket/environment-variables-794502608.html

  • Ich werde es versuchen, wenn ich wieder dazu komme und mich bei Ihnen melden, danke

    – Abdallah Alsammann

    4. April 2017 um 10:45 Uhr

1439600cookie-checkWie kann ich zwei Git-Zweige in der Bitbucket-Pipeline unterscheiden?

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

Privacy policy