p_chinのおっぱいブログ

UnityとPerlなど

git merge --no-ff {branch_name}とgit-new-workdirとpush.default simpleについて聞いた

gitについて色々教えてもらったのでメモ

でも、半分くらい怖くないGit読めばいい感が出てる記事になると思う


 

git merge --no-ff {branch_name}

怖くないGitの40枚目から説明ある

  • --no-ffオプション付ければgitがfastforwardな処理をしてしまう場合でも、丁寧にmerge commitを作ってくれる
  • fastforwardはbranchAの変更をmasterにmergeするときに、masterがbranchA切る前から変更が無かった場合,gitがmerge作業が面倒くさいのでbranchAをmasterにしてしまう処理。

git-new-workdir

  • いちいち同じリポジトリをcloneして来なくても、複数のbranchにcheckoutできるものらしい
  • 実際にやってみたら、cloneよりは早いけど、「別にプロジェクトのリポジトリを持ってきてbranch切る」みたいな感じだった。

ここがいい感じに参考になった

push.default simple

  • 引数無しpushが怖いから今までgit.push trackingにしていたけど、のちのちsimpleがpush.defaultの標準になるらしいのでsimpleに変えた
  • current branchと同名のremote branchが存在する場合と、branchがupstreamな状態の場合、current branchのpushが行われる
  • gitを最新versionにすると、current branchのremote branchが存在しなかったり、upstreamじゃなかったりすると、警告メッセージで打つべきコマンドを表示してくれるからマジ便利。

参考になった記事