先週まで国際学会に出すための論文を執筆していて、精神が破壊されました。題名がナウくない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リストとか作っておくと、うっかりミスを防ぐことができます。
こんな感じで、「いやー頑張った頑張った。」と思いながらmargeボタンを押す瞬間は、コマンドを叩くのとは違う心地よさがありました。
注意点
GitHubのリポジトリは必ずprivateにしましょう。ただ、privateにしても「大切な研究データを外部に置くのは絶対ダメ!」という考え方もあるので、そういう場合はGitLabなどを研究室サーバなどに導入しましょう。
「GitHubで研究データ管理してたら、実験データすっぱ抜かれて先に学会発表された!」とか言われても困っちゃうので、自己責任で適切な環境を選んでくださいね。