ちょっとしたスクリプトを書く機会があって、それを見せる手段としてgithubは、コードのダメなところとか指摘してもらったり、こういう風に書けばいいとforkしてもらって、こちらにpull request してもらうということが可能?なんか出来るのかなと思って始めた。
手始めにドットファイルをpushした
.vimrc や、.zshrcを置くリポジトリを作った。最近、シェルはzshの方が便利だということを知ったので、乗り換えた。同時に開いているシェル間で履歴の共有ができるらしいので、便利っぽい。
ローカルにフォルダdotfilesを作る。
基本は、GitHub Bootcamp に沿ってやった。
% mkdir -p dotfiles % mv .vimrc ./dotfiles/.vimrc % cd dotfiles % touch .gitignore % vim .gitignore % git init Initialized empty Git repository in /Users/hoge/dotfiles/.git/ % git add ./ % git commit -m "first commit" [master (root-commit) b81ea9d] first commit 2 files changed, 114 insertions(+) create mode 100644 .gitignore create mode 100755 .vimrc % git remote add origin https://github.com/username/dotfiles
とここで、エラーが発生した。どうやら、READMEファイルをWEBから編集したから競合が起きたらしい。ググって、解決策をみつけた。一時的にブランチを作ってpullした後、それをmaster にマージすればいいらしい(あとで気づいたけどリポジトリをローカルにpullすればよかったのでは)。
% git branch temp1 % git checkout temp1 Switched to branch 'temp1' % git pull origin +master:temp1 % git diff temp1 master % git checkout master Switched to branch 'master' % git merge temp1 Merge made by the 'recursive' strategy. README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.md % git push origin master # ここでマスターにpush完了
最後に$HOMEに.vimrcのシンボリックリンクを貼っておく。
% ln -s ./dotfiles/.vimrc .vimrc
以上と同じようなことを.zshrcについても行った。
ファイルを削除する場合。
リポジトリにあるファイルを削除したい場合は、ローカルにpull して単純に削除しただけじゃダメなようだ。
% rm README # これはだめ % git rm README # これで削除する rm 'README' % git commit -a -m "delete README" [master 2d84ae2] delete README 2 files changed, 4 insertions(+), 3 deletions(-) delete mode 100644 README % git push origin master
全体の流れメモ
- ファイルの変更や削除する
-- 新しくファイルを作ったら git add filename としておく - git commit -a -m "comment" でコミットする
- git push origin master として反映させる
という感じっぽい。