それぞれのGitは独自の独立したエンティティであり、独自のルールを作ることができます(あるいは、何らかのGit管理者がそれを補完することもできます)。
gitlab
と呼んでいるマシンのGitは、偽のコミッター名や電子メールアドレスを持つコミットを許可する簡単なルールを持っていると思われます。自分のマシン上のあなた自身のGitも同様です。しかし、bitbucket
と呼んでいるURL上のGitは厳しくなっています。
マスターのコミットは他の誰かによって作成されましたが、branchA
にマージされました。
この問題を解決することは可能ですか?
あなたの側ではありません。あなたはを避けることができますそれは、いくつかのコストで、しかしあなたはを解決することはできませんそれ。
基本的には、gitlab
でGitから取得し、独自のGitリポジトリに格納したコミットオブジェクトが、bitbucket
というGitの要件を満たしていないという問題があります。さらに、すべてのGitオブジェクトは読み込み専用です。一度作成すると変更できません。既存のGitオブジェクトがというGitによって課された要件を満たす唯一の方法は、それらの要件が緩和されているかどうかです。
これは可能かもしれませんが、最後にできることではありません。接続のBitbucketの端でそれを行うことができますあなたは十分な管理者権限を持っていて、BitBucketの人々がその厳密性を制御するための適切なノブを備えています。
また、あなたは、これらの単独でのオブジェクトをコミット残したまま、は、新しい作ることができるとを改善は非常にオリジナルのようなもので、オブジェクトをコミットするが、それはbitbucket
でGitがに反対していることは何でも修正しています。これらの新しく改良されたコミットとあなたの仕事をマージして、結果をGitにbitbucket
でプッシュすることができます。それは私が上記の「回避」と呼ぶものです。あなたは実際にを固定していません何か:壊れている(とにかくbitbucket
でのGitの目にある)コミットは依然として壊れています。あなたはちょうどをと使っています。少なくともGitに送るものはbitbucket
です。
コミットを1つずつコピーするには、git cherry-pick
を使用できます。結果として得られるコミットには、作成者としてのオリジナルの作者と、コミッターとしてのデフォルトの作者があります。 en-masseをコミットするには、git rebase
(いろいろなやり方でややこしい)やを使うことができます(これは、コピープロセスを大いに制御しますが、いくつかの点では扱いにくいです。あなたは実際にすべてのコントロールが何をするか知っている必要があります)。
いずれの場合でも、オリジナルのコピーはオリジナルと同じではありません。元のものは変更できないため、必然です。元のコピーと新しいコピーの両方を使用する必要があるすべての人に頭痛を引き起こしますこれはおそらく自分自身を含む)。 誰もがに新しい "修正済み"コミットに切り替えることができない限り、行く方法ではないかもしれません。
gitグローバルを既に設定しましたか? 'git config --list |は何ですか? grep user'は言う? – Chad
私の名前とメールアドレスが記載されています – ewok