開発メモ

主に,Subversionの補助ツールとしてGitを使うためのメモ.

参考

svnリポジトリをgitから使う

前準備:svnリポジトリをクローンする

svn checkout に相当.

$ git svn clone https://..../rctools/trunk/librcsc librcsc

(sshもOK) $ git svn clone svn+ssh://..../rctools/trunk/librcsc librcsc

ローカルの変更をsvnリポジトリへ反映する

svn commit に相当.

$ git svn dcommit

svnリポジトリの変更をローカルへ反映する

svn update に相当.git svn fetchだとローカルのファイルは変更されない?

$ git svn rebase

Git一般

共有リポジトリ作成

  1. サーバ側で空の共有リポジトリ作成
    $ mkdir repo.git
    $ cd repo.git
    $ sudo git init --bare --shared=true
  2. ローカルマシンでgitリポジトリ作成
    $ git init
    $ git add .
    $ git commit -m "initial import"
  3. リモートgitリポジトリに名前をつける(以下の例ではorigin)
    $ git remote add origin ssh://xxx.yyy.zzz/home/git/repo.git 
  4. サーバ側へpush(masterはsubversionのtrunkに相当)
    $ git push origin master
  5. 他の場所で作業する
    $ git clone ssh://xxx.yyy.zzz/home/git/repo.git 

httpsで通信する場合

SSLの認証エラーを回避する設定を追加

$ vi ~/.gitconfig
[http]
   sslVerify = false

または,環境変数GIT_SSL_NO_VERIFYをtrueにしてもOK

$ GIT_SSL_NO_VERIFY=1 git clone https://xxx.yyy.zzz/git/repo.git
$ vi ~/.netrc
machine <host>
login <user>
password <password>
$ chimod 600 ~/.netrc

または,リモートリポジトリにユーザ名を含めるのでもOK

$ cd repo
$ git clone https://user@xxx.yyy.zzz/git/repo.git

ローカルの変更を元に戻す

svn revert に相当.git revertは目的が違う.

$ git checkout ファイルパス

git rm または git mv したディレクトリ/ファイルを元に戻す場合は、

$ git reset HEAD パス
$ git checkout -- パス

addしたファイルをコミット対象から取り除くには

svn revert に相当.'--cached'オプションによって,コミット対称からは消えてもファイルそのものは残せる.

$ git rm --cached ファイルパス.

無視するファイルを設定

いずれの場合も,パターンファイルの中身はSubversionで使用したものそのままでOK.

リポジトリのディレクトリごとに設定

ディレクトリごとに.gitignoreというファイルを作り,無視するパターンを列挙.

リポジトリに設定

リポジトリの .git/info/exclude に無視するパターンを列挙

グローバルに設定

作業環境全体で同一の設定を使う場合,

$ git config --global --add core.excludesfile PATTERNFILE

core.excludesfileの設定は $HOME/.gitconfig に記述される. $HOME/.gitignoreにパターンを列挙するなら,

$ git config --global --add core.excludesfile $HOME/.gitignore

エディタを設定

コミットメッセージ編集用のエディタをemacsにする

$ git config --global --add core.editor emacs

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1258d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.