-
Notifications
You must be signed in to change notification settings - Fork 4
Tips for git in enja oss
こんな感じで、gitの運用をするとenja-ossでの活動がスムーズになるかもしれないというTipsです。絶対にこうしろという強制力はありませんが、ご参考まで。
enja-ossのmaster
リポジトリと、自分がforkしたリポジトリとで簡単に同期を取る為に、以下のようにremoteを設定すると楽になります。
git remote add upstream [email protected]:enja-oss/Backbone.git
git remote
# 以下のように表示されます
# origin
# upstream
これによりenja-ossのリモートリポジトリがupstream
、自分のforkしたリポジトリが(自動的に)origin
となります。
運用フローとしては以下のような感じになります。
git checkout master
git pull upstream master
git push origin master
これにより
- enja-ossリポジトリから
master
ブランチをローカルリポジトリにpull
- ローカルリポジトリで
pull
したmaster
ブランチを自分のforkしたリモートリポジトリにpush
という感じでスムーズにmaster
ブランチを更新することができるようになります。
上記のように作業すると、master
ブランチで作業をしていると、変にmerge
が起きたりするので不便です。
また仮にそうでなくても、master
ブランチでpull request送ってから作業→push
すると、pull requestに
commitが追加されていくので、今回のpull requestに無関係のcommitが混ざってしまう恐れもあります。
そこで、master
ブランチはあくまでもenja-ossリポジトリとの同期としておき、自分の作業分では都度ブランチを
切っていくようにすると便利です。
git checkout -b Event
#作業
git add doc/Event.md
git commit -m "translate"
git push origin Event
このトピックブランチの作業が終わるまでは、特にmaster
ブランチとmerge
やrebase
などしなくても
どうせpull requeset送って全て採用されればmaster
に統合されるので放っておいても問題ないと思います。
pull requestが採用され、トピックブランチの作業が全て終了したら、ブランチの削除してしまって問題ありません。
git checkout master
git branch -D Event
git push origin :Event
最近GitHubに、pull request終わったら「このブランチ削除する?」みたいなボタンが出来たので、 ボタンを押してから
git checkout master
git pull origin --prune
でも同じようにブランチが削除されます。
BackboneとUnderscoreのリポジトリ内には original
というディレクトリがあると思います。
こちらは、翻訳時点でのそれぞれの元の documentcloud のリポジトリを保存しているものになります。GitHubでoriginal
ディレクトリのリンクをクリックすると元のリポジトリに飛ぶようになっています。
enja-ossのリポジトリの上記のリポジトリをgit clone
した時にはディレクトリは無いと思いますが、以下の操作をする事により、オリジナルのディレクトリ構成やブランチなどがローカルリポジトリに再現されるようになります。
git submodule init
git submodule sync
git submodule update
cd original
git checkout master
git checkout gh-pages
出来たばかりのoriginal
ディレクトリではどのブランチにもなっていないので、master
ブランチやgh-pages
ブランチをチェックアウトしてください。翻訳に使うのにはgh-pages
ブランチを参考にすると良いと思います。