Gitの使い方

SourceForge.JPのGitリポジトリはWebインターフェイスからコミット情報やファイルの内容をブラウズできます。

Git コマンドやツールを使ってアクセスする場合は、HTTP 及び Gitプロトコル(ポート9418)で読み込み、 HTTPS および SSH 経由で読み書き双方のアクセスができます。

Gitリポジトリの内容を読み込む

プロジェクトにGitリポジトリがある場合は、プロジェクトの「ソースコード」タブにそのGitリポジトリが表示されています。そこをクリックするとWebインターフェイスから閲覧できます。 また、「ソースコード」-「ガイドと履歴」を選択すると、そのプロジェクトが用意しているリポジトリすべてが閲覧できるので、そこから選択していく方法もあります。

コマンドなどで、任意のプロジェクトのソースを取得したい場合は、次のように実行します。 (注意: この方法で clone した場合、そのまま origin に push 出来ません。 あなたが開発者の場合は「開発者向けアクセス」の所に表示されている <ログイン名>@git.sourceforge.jp:/gitroot/... を使ってください。)

git clone git://git.sourceforge.jp/gitroot/<プロジェクト名>/<リポジトリ名>

Gitリポジトリに書き込む

プロジェクトメンバーはGitリポジトリへの書き込み権限があります。

1 SSH環境を整える

アカウント管理で、ssh公開鍵を登録します。ssh1/2(rsa、dsa)のどの鍵も利用できます。ペーストする際に、必ず1つの鍵が1行におさまるようにしてください。そうしないと、鍵が正確にコピーされません。

登録された鍵は、数分で有効になります。

2 Gitリポジトリの新規作成

Gitリポジトリを作成するには、プロジェクトメニューの「ソースコード」-「Git管理」のページを開きます。このページで「新規Gitレポジトリを作成」をクリックし、

  • リポジトリ名(英数字)
  • 概要(テキスト、日本語可)

を入力してください。続いて[新規Gitリポジトリを作成]ボタンを押すと、Gitリポジトリが作成されます。作成には数分ほどかかります。

3 ローカルリポジトリでの準備

手元のGitリポジトリでは、メールアドレスを設定しておいてください。現在、Gitリポジトリへの書き込みを登録メールアドレス(ログイン名@users.sourceforge.jp)で記録しています。

git config --global user.email <登録されたメールアドレス>
「--global」オプションはGit環境全体に影響するので、特定のリポジトリだけを登録する場合は、そのリポジトリディレクトリ内に移動し、「--global」オプションなしで実行してください。その場合、設定内容は、.git/configに、
[user]
	email = <ログイン名>@users.sourceforge.jp
のような書式で記述されます。

3-1 ほかのリポジトリからの移行

ほかのリポジトリの内容をSourceForge.JPに登録する場合は、まずローカルにリポジトリを作成しておきます。

git clone git://<別のリポジトリ>
「--global」オプションでuser.emailを設定していない場合は、そのリポジトリ内に移動し、上記のようなコマンドでuser.emailを設定しておきます。

4 Gitリポジトリに書き込む

準備ができたら作成した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

4-1 長い git URL を省略する

一度

git remote add sfjp <ログイン名>@git.sourceforge.jp:/gitroot/<プロジェクト名>/<リポジトリ名>

として remote のリストに登録すれば、次回からは

git push sfjp

だけで送信できます。

Windows上での注意

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 を使うか、単にオプションを削除してください。