SourceForge.JPのGitリポジトリはWebインターフェイスからアクセスできます。また、Gitプロトコル(ポート9418)で読み込みが可能です。
Gitリポジトリに読み書き双方のアクセスをするには、SSH経由でアクセスします。
プロジェクトにGitリポジトリがある場合は、プロジェクトの「ソースコード」タブにそのGitリポジトリが表示されています。そこをクリックするとWebインターフェイスから閲覧できます。 また、「ソースコード」-「ガイドと履歴」を選択すると、そのプロジェクトが用意しているリポジトリすべてが閲覧できるので、そこから選択していく方法もあります。
コマンドなどで、任意のプロジェクトのソースを取得したい場合は、次のように実行します。 (注意: この方法で clone した場合、そのまま origin に push 出来ません。 あなたが開発者の場合は「開発者向けアクセス」の所に表示されている <ログイン名>@git.sourceforge.jp:/gitroot/... を使ってください。)
git clone git://git.sourceforge.jp/gitroot/<プロジェクト名>/<リポジトリ名>
プロジェクトメンバーはGitリポジトリへの書き込み権限があります。
アカウント管理で、ssh公開鍵を登録します。ssh1/2(rsa、dsa)のどの鍵も利用できます。ペーストする際に、必ず1つの鍵が1行におさまるようにしてください。そうしないと、鍵が正確にコピーされません。
登録された鍵は、数分で有効になります。
Gitリポジトリを作成するには、プロジェクトメニューの「ソースコード」-「Git管理」のページを開きます。このページで「新規Gitレポジトリを作成」をクリックし、
を入力してください。続いて[新規Gitリポジトリを作成]ボタンを押すと、Gitリポジトリが作成されます。作成には数分ほどかかります。
手元のGitリポジトリでは、メールアドレスを設定しておいてください。現在、Gitリポジトリへの書き込みを登録メールアドレス(ログイン名@users.sourceforge.jp)で記録しています。
git config --global user.email <登録されたメールアドレス>「--global」オプションはGit環境全体に影響するので、特定のリポジトリだけを登録する場合は、そのリポジトリディレクトリ内に移動し、「--global」オプションなしで実行してください。その場合、設定内容は、.git/configに、
[user] email = <ログイン名>@users.sourceforge.jpのような書式で記述されます。
ほかのリポジトリの内容をSourceForge.JPに登録する場合は、まずローカルにリポジトリを作成しておきます。
git clone git://<別のリポジトリ>「--global」オプションでuser.emailを設定していない場合は、そのリポジトリ内に移動し、上記のようなコマンドでuser.emailを設定しておきます。
準備ができたら作成したGitリポジトリに書き込みます。
最初に SSH 経由で clone している場合は、単に
git push
とするだけで sf.jp に更新内容が送られます。
もし、その他の場所から clone したり、手元で新規に作成したレポジトリの内容を送信したい場合は 「ソースコード」-「ガイドと履歴」のページに「SSHを使った開発者向けアクセス」という欄にあるコマンド例を参照してください。 こにアクセスに必要な情報が記載されています。
たとえばpushで書きこむ場合は、以下のようになります。
git push <ログイン名>@git.sourceforge.jp:/gitroot/<プロジェクト名>/<リポジトリ名>
なお、新規作成時(Gitリポジトリが空の場合)は、ブランチ名が登録されていないので、 上記のままでは書き込みができません。 「--mirror」オプションをつけて実行するか、masterなどのブランチ名をつけて実行します。
git push <ログイン名>@git.sourceforge.jp:/gitroot/<プロジェクト名>/<リポジトリ名> master
一度
git remote add sfjp <ログイン名>@git.sourceforge.jp:/gitroot/<プロジェクト名>/<リポジトリ名>
として remote のリストに登録すれば、次回からは
git push sfjp
だけで送信できます。
Windows上で、Git on MSysを利用する場合、このバイナリパッケージでは、以下の内容がシステムデフォルトとして設定されています。
core.symlinks=false core.autocrlf=true color.diff=auto pack.packsizelimit=2g「core.autocrlf=true」となっていると、リポジトリオブジェクトからファイル階層の構成時に、改行コードのLFはCRLFと置換されてしまいます。そのため、意図してLFを利用している場合は、commitの都度、変更されてしまうことになってしまいます。core.autocrlfを無効にするには、以下のコマンドなどを実行します。
git config --system core.autocrlf false もしくは git config --system --unset-all core.autocrlf
システム全体の設定を変更したくない場合は --system の変わりに --global を使うか、単にオプションを削除してください。