SVNとGitのコマンド名が似ていて理解しづらい!
「Git の基礎勉強 ~ Git によるバージョン管理 ~」で勉強しながら「svnコマンドから探すgitコマンド」も参考にしつつ、ここではGitを使っていく流れに沿ってコマンドを対応させたいと思います。
最近はTortioseSVNに頼りっきりで、コマンド名を覚えていないものが多々・・・
新規作成→作業→追加→反映
マスターのリポジトリと作業ディレクトリを作って編集して、マスターのリポジトリに反映する。
リポジトリを新規作成
- git init
- svn ???
みんなで触る、マスターなリポジトリを作る。
作業ディレクトリを作る
(※ここの説明には多分に憶測と誤解が含まれる可能性があります)
- git clone
- マスターのリポジトリ情報を完全コピー。
- svn checkout
- マスターの最新状態をコピー。
マスターなリポジトリから、自分が作業(作成・編集・削除)するためのローカルな環境を作成する。
作業内容を管理対象に追加する
- git add
- svn add
作業ディレクトリ上で新しく作ったファイルを、バージョン管理対象として認識させる。
Gitだと、編集するたびにAddしなきゃいけない気がしてるんだけど、勘違いかな?
作業内容をローカルリポジトリに反映する
- git commit
- (対応するSVNコマンドなし)
Gitがいいなと思う一番のポイントは、ローカルでコミット履歴を管理できること。
短い周期で修正→コミットを気兼ねなく繰り返すことが可能。
作業内容をマスターのリポジトリに反映する
- git push
- svn commit
SVNからの乗り換えで一番混乱するのがcommitとpushだと思う。
pushしてコミットするとか説明されてるしね。
あと、branchなのにmaster?とかmasterとHEADの違いとか。
同じ用語で意味が違うって混乱のもとね。
更新→衝突!→修正→反映
マスターのリポジトリから変更を取り込んだらコンフリクトしたので直す。
作業ディレクトリを更新して、ほかの人の変更を取り込む
- git pull
- svn update
git pullはfetchしてmergeしているらしいけど、まだそんなこと知らないので説明は省略。
svn updateも実は同じようなことしてるよね。
衝突を修正する
単独のコマンドはない。
1 | 2 | 3 | 4 | 5 | ||||
---|---|---|---|---|---|---|---|---|
git status | → | 修正 | → | git add | → | git commit | → | git push |
svn status | → | 修正 | → | svn resolve | → | 対応コマンドなし | → | svn commit |
衝突状況の確認 | 手動修正 | 衝突解消を通知 | ローカルコミット | マスターコミット |
ブランチ→修正→反映
ブランチを作って、何か修正して、マスターのリポジトリに反映する