OSDNのGitリポジトリはWebインターフェイスからコミット情報やファイルの内容をブラウズできます。
Git コマンドやツールを使ってアクセスする場合は、HTTP 及び Gitプロトコル(ポート9418)で読み込み、 HTTPS および SSH 経由で読み書き双方のアクセスができます。
プロジェクトにGitリポジトリがある場合は、プロジェクトの「ソースコード」タブにそのGitリポジトリが表示されています。そこをクリックするとWebインターフェイスから閲覧できます。 また、「ソースコード」-「ガイドと履歴」を選択すると、そのプロジェクトが用意しているリポジトリすべてが閲覧できるので、そこから選択していく方法もあります。
コマンドなどで、任意のプロジェクトのソースを取得したい場合は、次のように実行します。 (注意: この方法で clone した場合、そのまま origin に push 出来ません。 あなたが開発者の場合は「開発者向けアクセス」の所に表示されている <ログイン名>@git.osdn.net:/gitroot/... を使ってください。)
git clone git://git.osdn.net/gitroot/<プロジェクト名>/<リポジトリ名>
プロジェクトメンバーはGitリポジトリへの書き込み権限があります。
ホスト鍵のfingerprintは以下の通りです。
Protocol | Fingerprint |
SSH version 2 (RSA) | SHA256:uKMD1XyGiRCd6QyzCpvlJ5ME79d939Z1Frdua9uZEUE MD5:b7:78:67:21:63:ef:c2:a8:af:88:6c:a6:98:a7:06:75 |
SSH version 2 (EDCSA) | SHA256:9K7tpuAFYBPZdA0DhEJGTGbzDU63vXHVYdtgf7sEArc MD5:1c:3b:fe:2d:67:69:02:85:4b:79:64:c8:b5:bc:1e:9b |
SSH version 2 (ED25519) | SHA256:Zvhg5QZkdPGUR7tOa+xG3txNwFTZCWpOhJKVMAs8H04 MD5:e9:bb:c8:97:b5:f1:f6:d6:5a:17:a8:ab:65:2e:ed:6b |
アカウント管理で、ssh公開鍵を登録します。ssh protocol version 2 (rsa,edcsa,ed25519)の鍵が利用できます。ペーストする際に、必ず1つの鍵が1行におさまるようにしてください。そうしないと、鍵が正確にコピーされません。
登録された鍵は、数分で有効になります。
Gitリポジトリを作成するには、プロジェクトメニューの「ソースコード」-「Git管理」のページを開きます。このページで「新規Gitレポジトリを作成」をクリックし、
を入力してください。続いて[新規Gitリポジトリを作成]ボタンを押すと、Gitリポジトリが作成されます。作成には数分ほどかかります。
手元のGitリポジトリでは、メールアドレスを設定しておいてください。現在、Gitリポジトリへの書き込みを登録メールアドレス(ログイン名@users.osdn.me)で記録しています。
git config --global user.email <登録されたメールアドレス>「--global」オプションはGit環境全体に影響するので、特定のリポジトリだけを登録する場合は、そのリポジトリディレクトリ内に移動し、「--global」オプションなしで実行してください。その場合、設定内容は、.git/configに、
[user] email = <ログイン名>@users.osdn.meのような書式で記述されます。
ほかのリポジトリの内容をOSDNに登録する場合は、まずローカルにリポジトリを作成しておきます。
git clone git://<別のリポジトリ>「--global」オプションでuser.emailを設定していない場合は、そのリポジトリ内に移動し、上記のようなコマンドでuser.emailを設定しておきます。
準備ができたら作成したGitリポジトリに書き込みます。
最初に SSH 経由で clone している場合は、単に
git push
とするだけで OSDN に更新内容が送られます。
もし、その他の場所から clone したり、手元で新規に作成したレポジトリの内容を送信したい場合は 「ソースコード」-「ガイドと履歴」のページに「SSHを使った開発者向けアクセス」という欄にあるコマンド例を参照してください。 こにアクセスに必要な情報が記載されています。
たとえばpushで書きこむ場合は、以下のようになります。
git push <ログイン名>@git.osdn.net:/gitroot/<プロジェクト名>/<リポジトリ名>
なお、新規作成時(Gitリポジトリが空の場合)は、ブランチ名が登録されていないので、 上記のままでは書き込みができません。 「--mirror」オプションをつけて実行するか、masterなどのブランチ名をつけて実行します。
git push <ログイン名>@git.osdn.net:/gitroot/<プロジェクト名>/<リポジトリ名> master
一度
git remote add osdn <ログイン名>@git.osdn.net:/gitroot/<プロジェクト名>/<リポジトリ名>
として remote のリストに登録すれば、次回からは
git push osdn
だけで送信できます。
具体的な例としてGitHub のリポジトリをOSDNのプロジェクトにに取り込む方法を挙げておきます。
説明のために以下の状態を前提とします。
まだ何もないカラのリポジトリが必要なので、プロジェクトに新規にGitリポジトリを作成します。 以下のような(プロジェクトのソースコードメニューにリンクがある)Git管理ページの新規リポジトリ作成ボタンをクリックしてリポジトリを新規登録します。 登録後、リポジトリが実際に作成されるまで最大数分程度かかります。
以下リポジトリ名は example1 とします。
リポジトリが作成されたら リポジトリビューアのページを開いて、リポジトリのアクセスURLを確認します。
右上にある SSH ボタンをおして SSH 経由でアクセスできる URL をコピーしておきます(HTTPS 経由でも書き込みはできますが SSH の利用を推奨します) URL は以下のような形式です。
GitHub からローカルにcloneしてあるGitリポジトリを上記のOSDN git リポジトリに以下のようなコマンドで書き込みます(カレント ブランチを push する例です。カレントブランチ以外を push する場合は ブランチ名を コマンド最後に付加してください)
cd /home/foo/GITHUB_REPO1 git push YOUR_ACCOUNT@git.osdn.net:/gitroot/project_example/example1.git
上記コマンドで OSDNのリポジトリに push が行えます。ただし、上記のコマンドですと、毎回長いURLをそのまま指定しないといけないため、 何度も push を行う場合操作が煩雑になりますので、以下のように remote のショートカット名を登録しておくと便利です。
git remote add osdn YOUR_ACCOUNT@git.osdn.net:/gitroot/project_example/example1.git
remote 名を追加しておくと以下のようなコマンドでpushできるようになります
git push osdn
また、 ローカルに clone してきたリポジトリの場合特に変更していなければ origin という名前で clone 元のリポジトリが設定されており、 この remote がディフォルトの push 先として設定されています。git push 時に remote を指定していない場合には このディフォルトの remote に push が行われます。
先程設定した osdn をディフォルトとして push 先にするするようであれば、以下のように push 時に -u オプションをつけて一度実行しておくと便利です。
git push -u osdn
これで ディフォルトの psuh 先が osdn に変更されますので、以後特にオプションをつけないで push した場合 osdn へ push が 行われます。
git push
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 を使うか、単にオプションを削除してください。
[PageInfo]
LastUpdate: 2019-06-19 16:23:55, ModifiedBy: ishikawa
[License]
GNU Free Documentation License
[Permissions]
view:all, edit:members, delete/config:members