2016-03-29 3 views
1

問題:特定のディレクトリで、Gitプッシュは非常に少数のユーザー(User1)に制限されています。他のユーザー(User2)はここで変更をプッシュできません。Gitが「別のユーザーによってコミットする」

User2がそのdirに変更をコミット(git add + Git commit)した後、User1にコミット番号を提供し、Git pushをコミットする方法がありますか?

できますか?

+0

コミットを転送する方法はいくつかあります。 User2は自分のコミットをUser1に郵送し、User1はそれをプッシュします。つまり、要するに、はい。しかし、私はUser2が "特定のディレクトリ"に+ commitを追加することはできないはずだと思います。 User2が自分のリポジトリをクローンしてそこに変更を加えた方が良いでしょう。 – ikrabbe

答えて

2

通常、User2は変更を加えてコミットします。次に、変更を上流にプッシュするUser1に提供します。

変化は、様々な機構を介して提供することができる:Eメール経由

  • User2それらをgit format-patchUser1にパッチを送ることができる
  • User2は、電子メールの保持内容をフォーマットするためにgit request-pullを使用することができUser1のために彼女は変更を見つけることができた(追加の裸のレポ、User2のマシンへの直接読み取りアクセス)
  • ドメイン固有のメカニズム(すなわちGithub Pull Requests, Gitlab Merge Requests、...)

あなたの要件は珍しいことではありません。オープンソース・プロジェクトの多くは、ちょうどこのように動作:誰もが変更を貢献できる一方で、それが実際のプロジェクトにこれらの変更を統合するために、特定の(信頼できる)人次第ですリポジトリ。


編集
私はここ

  1. git format-patchgit request-pullを使用する方法についていくつかの例を提供しますあなたがやった最後の3つのコミットのためのパッチを作成します。

    git format-patch -3 
    

    をこれにより、電子メール経由で誰かに送信できる3つのパッチファイルが作成されますあなたはマスターから分岐するので、上流レポにコミットする

  2. は、分岐my-new-featureのすべてのコミットのためのパッチを作成します。

    git format-patch master..my-new-feature 
    

    これは、それぞれがあなたがmy-new-featureで行ったコミット取ると、それから、パッチを作成します。このパッチもメンテナーに送ってください。

  3. は、あなたのハードディスク(Windowsの場合)から直接メンテナへの変更を公開:

    • メンテナと作業ディレクトリを共有(読み取りアクセス権を彼女に与える)、\\yourmachine\yourworkingcopyと言います。これからは、メンテナが読むことができる共有フォルダ
    • の内容は、あなたのコンソールを開き、魔法が起こるみましょう:

      git request-pull origin/master file:////yourmachine/yourworkingcopy my-new-feature 
      

      これはあなたのコンソールに既製Eメールのテキストを吐き出しますあなたのメンテナーに連れて行くことができます。

+0

ありがとうございます。可能であれば例を挙げてください。 –

+0

@ Mr.Bordoloi:例が追加されました! – eckes

関連する問題