2017-12-22 7 views
2

にプッシュしようとしたとき、次は、リモートのgitリポジトリにプッシュしようとして出力されます:ヘリット:後の追加/ローカルのgitリポジトリにコミットし、私が受け取る:[リモート拒否](変更が行われていない)、リモート

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' 
は、

注:手の前に、私は改正していた私の最後の

私は、私はそれらをプッシュすることはできませんなぜ私は理解していないので、コミットすると、変更が承認される参照コミット。

git diff 4075c99 bbb6b31出力は表示されません私は一日中コミットしていましたが、ジェリットの最後のプッシュは20日(ローカルは30分前のようでした)でした。ここ

は私の現在のgit log出力されます:4075c99bbb6b31が異なるハッシュと同じコミットしているため

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

あなたは 'gitのdiffを4075c99 bbb6b31'実行する場合は、変更内容を見ていますか?これはプライベートレポジトリですか、あるいは関連するリポジトリを私たちと共有することができますか? – larsks

+0

@larsks私は変更が実際にあったうーん...何も出力を受けていないものの – aphexlog

+0

コミット8e3b769cf035a304d4b5bd796fd13737efaba01a(HEAD - >シェフ-機能-1.0) 著者:アーロン・西<[email protected]> 日:金12月アーロン・西<[email protected]> 日:12月22日(金)9時49分01秒2017 I1b2449a74a86aa5f02a75f5c768203a24860dfe1 が12b082629bfd14e63a7dca8a5c43f41db23ca64b 者をコミット: 変更-IDをoid1の確定22 9時51分06秒2017年-0600 -0600 oidをクリーンアップしました。erb Change-Id:I0b906bbcb4b7b25bac41524b96d5133965ea93ea – aphexlog

答えて

1

ヘリットはあなたのプッシュを拒否しています。

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

しかし、それが唯一のではありません:あなたは(ハッシュを新しいコミットを作成する)コミット改正が、実際には何も変更しないとき

これが起こることが最も一般的な方法はありますそれは起こることがあります。最新のコミットに実際に有効な変更が含まれていても、同様のエラーが発生するシナリオがあります。たとえば、2つのコミットがある場合(2つのマージされていないGerritチェンジセット)、最新のコミットに変更を加えますが、誤って以前のハッシュを何らかの形で変更しています(しばしば、修正されたコミットまたはrebase -iでチェリーピッキング)。

... 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! 

これはおそらくあなたのためのケースである(そしてそれは2つのコミットより深いかもしれない)あなたのログに2つの最新のコミットがどちらもヘリットが文句を言っているハッシュを持っているので。

かかわらずあなたはこのような状況に到着したかの、ソリューションは同じである必要があります:それは不満とその上にあなたの仕事をチェリーピックコミットのヘリットのバージョン(正確なハッシュ一致)を取得します。あなたの例では、コミット前には4075c99です:

$ git checkout 4075c99 
$ git cherry-pick <changes you want> 
$ git push origin HEAD:refs/for/master 
関連する問題