2017-12-22 3 views
2

Die folgende zu schieben versucht, ist der Ausgang, wenn auf Remote-git-Repo zu schieben versuchen:Gerrit: Nach Hinzufügen/verpflichten zu lokalen git Repo, ich erhalten: [remote abgelehnt] (keine Änderungen vorgenommen), wenn sie Fern

Counting objects: 28, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (26/26), done. 
Writing objects: 100% (28/28), 3.28 KiB | 1.64 MiB/s, done. 
Total 28 (delta 22), reused 0 (delta 0) 
remote: Resolving deltas: 100% (22/22) 
remote: Processing changes: refs: 1, done 
remote: (W) No changes between prior commit 4075c99 and new commit bbb6b31 
To http://172.16.0.5:8080/chef-repo 
! [remote rejected] HEAD -> refs/for/chef-feature-1.0 (no changes made) 
error: failed to push some refs to 'http://172.16.0.5:8080/chef-repo' 

Hinweis: vor der Hand hatte ich meine letzte

ich werden sehen die Änderungen bestätigt begehen geändert, wenn eine Festschreibung so verstehe ich nicht, warum ich sie nicht schieben kann.

git diff 4075c99 bbb6b31 zeigt keine Ausgabe an Ich habe die Dinge den ganzen Tag begangen und der letzte Druck auf Gerrit war am 20. (lokal war es wie vor 30 Minuten).

hier ist meine aktuelle git log Ausgabe:

commit 8e3b769cf035a304d4b5bd796fd13737efaba01a (HEAD -> chef-feature-1.0) 
Author: Aaron West <[email protected]> 
Date: Fri Dec 22 09:51:06 2017 -0600 

    finalized oid1 

    Change-Id: I1b2449a74a86aa5f02a75f5c768203a24860dfe1 

commit 12b082629bfd14e63a7dca8a5c43f41db23ca64b 
Author: Aaron West <[email protected]> 
Date: Fri Dec 22 09:49:01 2017 -0600 

    cleaned up the oid.erb 

    Change-Id: I0b906bbcb4b7b25bac41524b96d5133965ea93ea 
+0

Wenn Sie 'git laufen diff 4075c99 bbb6b31' sehen Sie Änderungen sehen? Ist dies ein privates Repository oder können Sie uns die beteiligten Repositories mitteilen? – larsks

+0

@larsks Ich erhalte keine Ausgabe ... hmmm es war in der Tat eine Änderung obwohl – aphexlog

+0

commit 8e3b769cf035a304d4b5bd796fd13737efaba01a (HEAD -> Koch-feature-1.0) Autor: Aaron Westen <[email protected]> Datum: Fr Dezember 22 09:51:06 2017 -0600 abgeschlossen oid1 Wechsel-Id: I1b2449a74a86aa5f02a75f5c768203a24860dfe1 begehen 12b082629bfd14e63a7dca8a5c43f41db23ca64b Autor: Aaron Westen <[email protected]> Datum: Fr 22. Dezember 2017 09.49.01 -0600 die oid gereinigt.erb Änderung-Id: I0b906bbcb4b7b25bac41524b96d5133965ea93ea – aphexlog

Antwort

1

Gerrit Ihre Push ablehnt, weil 4075c99 und bbb6b31 sind identisch Commits mit verschiedenen Hashes.

Die häufigste Art und Weise, dass dies geschieht, wenn Sie einen Commit ändern (einen neuen Commit Hash-Erstellung), aber nichts wirklich ändern:

$ git push origin HEAD:refs/for/master 
$ git commit --amend 
... don't make any changes ... 
$ git push origin HEAD:refs/for/master 

aber das ist nicht die nur wie es passieren kann. Es gibt andere Szenarien, die zu einem ähnlichen Fehler führen, obwohl Ihr aktuellstes Commit tatsächlich gültige Änderungen enthält. Zum Beispiel, wenn Sie zwei Commits voraus sind (zwei nicht zusammengesetzte Gerrit-Änderungssets), und Sie Änderungen am letzten Commit vornehmen, aber versehentlich den vorherigen Hash irgendwie ändern (oft mit Rosinenpicken über einen geänderten Commit oder mit rebase -i): Diese

... two commits ahead of Gerrit ... 
$ git checkout HEAD~1 
$ git commit --amend 
... don't make any changes ... 
$ git cherry-pick master 
... make some valid changes that you want to push ... 
$ git commit --amend 
$ git push origin HEAD:refs/for/master 
REMOTE REJECTED! 

ist wahrscheinlich der Fall für Sie (und es kann sein, tiefer als 2 Commits), weil keiner der 2 letzten Commits in Ihrem Log den Hash haben, die Gerrit über beschwert.

Unabhängig davon, wie Sie in dieser Situation kam, die Lösung sollten die gleichen sein: Get Gerrits Version (genaue Hash-Übereinstimmung) des begehen darüber beschwert und kirsch wählen Sie Ihre Arbeit oben drauf . Mit Ihrem Beispiel begehen die vor ist 4075c99:

$ git checkout 4075c99 
$ git cherry-pick <changes you want> 
$ git push origin HEAD:refs/for/master 
Verwandte Themen