2011-12-04 5 views
10

私は、いくつかのコアコードを持つリポジトリを持っています。クライアントごとに複製したいので、クライアントが最新の機能にアップグレードするたびにgit pullを実行できます。Gitがローカルリポジトリからプッシュを無効にする

1つの会社だけが見ていることを修正したり変更したりしないために、ローカルリポジトリベースでフェッチを許可する方法がありますか?私はまだ私の開発環境からコアレポへの変更をプッシュできるようにしたいが、プロダクションマシンをプッシュできるようにしたくない。

+0

私はそれはあなたがあなたのgitリポジトリをホスティングするために使用しているかに依存信じています。それはGithub、あなた自身のgitサーバーですか? –

+0

[gitリポジトリを読み込み専用にするには?](http://stackoverflow.com/questions/1662205/how-to-make-a-git-repository-read-only) –

答えて

15

ファイル.git/configのクローン元リポジトリのリモートセクション(起点と呼ばれる)にの存在しないプッシュアールを指定してください。例:

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = <url> 
     pushurl = www.non-existing-url.com 

それとも、リポジトリの設定ファイルを編集して好きではない場合、あなたが入力できます。

$ git config remote.origin.pushurl www.non-existing.com 

あなたのようなエラーメッセージが表示されます押し:

$ git push 
fatal: 'www.non-existing-url.com' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

もちろん、複製された各リポジトリの設定ファイルを編集する必要があります。

+0

これは私が探していた情報私は新しい方法でそれらを再組み立てしているので、私のレポジスを分解しただけですが、一度一緒に戻すと、私はそれをテストします。 –

5

リモートコマンドがより便利であるため、configsを直接操作する必要はありません。

git remote set-url --push origin www.non-existing-url.com 

も同様に動作するはず

関連する問題