SubversionとGitコマンド対応表

勉強と備忘録として

前提

SSHでログインできるサーバーに中央リポジトリを置き、リモートで作業するモデルを想定。

  • クライアント
    • 作業ディレクトリ /path/to/works

リモートリポジトリの作成

Subversionコマンド

サーバーにて
% svnadmin create /path/to/repos
クライアント側にて
% cd /path/to/
% svn import works svn+ssh:///servername.hoge.jp/path/to/repos/works -m "Comment"

Gitコマンド

サーバーにて(参考: Gitリモートリポジトリ構築 CapmNetwork

% mkdir /path/to/repos.git
% cd /path/to/repos.git
% git --bare init --share

クライアント側にて

% cd /path/to/works
% git init
% git add .
% git commit
% git remote add origin ssh://username@servername.hoge.jp/path/to/repos.git
(サーバ名の後ろは絶対パスで指定すること)
% git push origin master

日常作業

元ネタ:cyclogy:gitとsubversionのコマンド対応表

操作目的 subversion git
作業ディレクトリ作成 svn checkout git clone
更新 svn update git pull = git fetch + git marge (参考
コミット svn commit git add → git commit → git push
管理対象に追加 svn add git add
管理対象から除去 svn rm git rm
移動 svn mv git mv
変更取り消し svn revert git checkout
ログ svn log git log
差分 svn diff git diff
ブランチの切り替え svn switch (このコマンド知らなかった) git checkout
状態確認 svn status git status
ブランチ作成 svn copy git branch
タグ作成 svn copy (ブランチ作成と一緒) git tag
マージ svn merge -r : git merge
リポジトリの最適化 -- git gc
エクスポート svn export git archives
変更履歴の可視化 -- git log --graph (参考, .gitconfig

ローカルリポジトリとリポートリポジトリの関連付け

Subversionになく、Git特有の話

ローカルリポジトリにリポートリポジトリを別名登録

servername.hoge.jというマシンの/path/to/repos.gitというリモートリポジトリをローカルのリポジトリへoriginという名前で登録

% git remote add <alias_name> <url_of_remote_repository>
% git remote add origin ssh://username@servername.hoge.jp/path/to/repos.git
% git push origin master (ローカルリポジトリのmasterをoriginへ反映させる)
% git pull origin (originの変更をmasterへ反映させる)
登録済みのリポートリポジトリのURLを変更する
% git remote set-url <alias_name> <url_of_remote_repository>
% git remote set-url origin ssh://username@servername.hoge.jp/path/to/repos.git
ブランチの削除

ローカルとリモートにあるブランチ bug_92 が役割を終えたので削除するとき以下のようにする。

% git branch
  bug_92
  dev
* master
% git branch -d bug_92 (ローカルを削除)
% git push origin :bug_92 (リモートを削除)

ローカルの変更をなしにして、リモートの変更を全部ローカルに反映させる

% git checkout HEAD
% git pull origin master (リモートリポジトリoriginのmasterブランチの内容をfetchしてmergeする)