文字っぽいの。

文字を書いています。写真も混ざります。

ナウいヤングは論文執筆にGitHubを使う

先週まで国際学会に出すための論文を執筆していて、精神が破壊されました。題名がナウくないFromAtomです。

 さて、GitHubで原稿執筆管理をすると便利だよ!という記事はこれまでに幾つか上がってきていますが、論文執筆においても便利なので、共有しておきます。

 僕は、高専時代に卒業論文DropBoxで管理(とはいえないけど)していて、色々と不便を感じていたのですが、大学の卒業論文執筆時にGitとGitHubを使うようにしてから、とても快適に論文が書けるようになりました。なので、大学時代の卒業論文も、昨年春に出した研究会用原稿も、先週まで書いていた論文もGitとGitHubで管理しました。

どうやるの

 一応エクスキューズしておくと、僕はTeXで論文やミーティング資料を作っています。DOCで執筆したり、Gitで管理したことがないのでそちらは分からないです。

 論文執筆の流れは、

  • n稿を書いて先生に添削をお願いする
  • 添削が返ってくる
  • 添削を元にn+1稿を執筆する

という感じが多いと思います。この「n稿」毎にブランチを切っています。

 まず、学会や学校などのテンプレートを導入して正しくコンパイルされる状態にしたものをfirst commitとしてmasterブランチにコミットします。

 次にmasterから1stブランチを切って、GitHub上でmasterブランチにPull Requestを送ります。

 PRを送ったら、1stブランチでガリガリ初稿を書いていきます。コミットの粒度は小節毎だったり段落ごとだったりしますが、これは執筆が進んでいくと変わっていくと思います。後半になると修正箇所も少なくなるので「○○先生添削分修正」などとふわっとしてきます。

 添削の依頼をして返ってきたら、1stブランチをmasterにマージします。そして2ndブランチを切ってPRを送って……の繰り返しです。

良い点

 DropBoxではなくGitで管理するメリットは言わずもがななので割愛します。

 稿毎にブランチを切るメリットとしては、簡単に前稿の内容を参照できる事です。もちろん、tigとか使いながら$git checkoutすればいけますが、結構脳みそを使います。それよりも

  • masterブランチに行けば前稿
  • ○thブランチに行けば最新稿

が確実になっていたほうが変に脳みそを使わなくて楽ちんです。特に、『masterブランチに行けば前稿』が保証されていると、「修正したは良いけど、前回どうなってたんだっけかな?言いたいこと消えてないかな?」という時に非常に便利でした。

 PRを送るメリットは、自分の作業量が可視化される点です。あとはToDoリストとか作っておくと、うっかりミスを防ぐことができます。

f:id:FromAtom:20140209000902p:plain

こんな感じで、「いやー頑張った頑張った。」と思いながらmargeボタンを押す瞬間は、コマンドを叩くのとは違う心地よさがありました。

注意点

 GitHubリポジトリは必ずprivateにしましょう。ただ、privateにしても「大切な研究データを外部に置くのは絶対ダメ!」という考え方もあるので、そういう場合はGitLabなどを研究室サーバなどに導入しましょう。

 「GitHubで研究データ管理してたら、実験データすっぱ抜かれて先に学会発表された!」とか言われても困っちゃうので、自己責任で適切な環境を選んでくださいね。

たぶん関係してる記事