初めてのGitHub(続き)
GitHubへプロジェクトを登録したので、今回は少し操作してみます。
ブランチ作成
- 「git checkout -b [branch name]」でブランチ作成
- 「git branch」でローカルブランチを一覧表示
- 「*」が表示されるのが現在使用していることを意味しているらしい(ブランチ作成と同時に変更された)
- 「git mv」でファイル名変更をして内容変更(README.rdocをREADME.mdに変更)
- git mvは「mv oldname newname && git add newname && git rm oldname」の省略形らしい
- 「git status」で状態を確認
- 「git -a -m "change message"」でコミット
- 現存するすべてのファイル変更を一括でコミットする-aフラグを使うことで「git add .」せずにファイル追加をしている
$ git checkout -b branch_20150322 # ブランチ作成 Switched to a new branch 'branch_20150322' $ git branch * branch_20150322 master $ git mv README.rdoc README.md # ファイル名変更 $ vi ./README.md $ git status # 状態を確認 On branch branch_20150322 Changes to be committed: (use "git reset HEAD <file>..." to unstage) renamed: README.rdoc -> README.md Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md $ git commit -a -m "Improve the README file" [branch_20150322 74ca3ba] Improve the README file 1 file changed, 2 insertions(+) rename README.rdoc => README.md (86%)
マージ
- 「git checkout master」で作業対象をmasterに切り替え
- 「git merge [branch name]」でマージ
- 「git branch -d [branch name]」使い終わったブランチを削除
$ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. $ git merge branch_20150322 Updating 6a12635..74ca3ba Fast-forward README.rdoc => README.md | 2 ++ 1 file changed, 2 insertions(+) rename README.rdoc => README.md (86%) $ git branch -d branch_20150322 Deleted branch branch_20150322 (was 74ca3ba).
ブランチをマージしないで破棄するためには「git branch -D [branch name]」とするようです。「git branch -d [branch name]」では、自動的にマージされてしまうようです。
上記の操作をしてしまったのですが、「git reset --hard ORIG_HEAD」で元に戻りました。CVSやSubversionと同じような感覚で作業すると危険かもしれないです…。
push
これまでVSS, CVS, Subversionを利用してきたのですが、Gitは少し難しく感じました。ブランチも保守フェーズになるまではあまり使ってなかったですし…。
「習うより慣れろ」で困った時に都度調べていくしかない気がしますが、「サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ」のような分かりやすいサイトもあるので、ざっと読んでおくのが良いかもしれないです。