カテゴリー
コンピューター

【Git】今週学んだことのノート

フォルダ

  • .git のあるフォルダ名は自由に変更して問題ない。

マージ

コンフリクト関係

  • コンフリクト発生時は、競合の内容が発生したファイルに書き込まれる “だけ” っぽい。
  • コンフリクトの修正は、その競合が発生したファイルを修正する “だけ” っぽい。
  • このとき、git mergetool を使用すれば、Git がコンフリクトの内容を読み取り、Git に登録されたマージツールを起動することができる。強力なオプションのような位置づけととらえた。
  • 一度コンフリクト発生ファイルをステージに追加するとコンフリクトは解消されたとみなされる。git reset で取り下げたとしても、git status での表示は庵マージ度ではなくただの変更されたファイルとして扱われるし、git mergetool してもマージが必要なファイル無しとされる。
  • よって、コンフリクトの修正完了を Git に知らせるには、git add でステージする “だけ” っぽい。

うっかりでも問題ない

  • マージする前にチェックアウトしわすれていて、自分自身 (今いるブランチ) を指定してマージしようとしても何も起こらない。安心♪
    $ edit-typo ブランチ上にいる。
    $ git merge --no-ff edit-typo
    Already up-to-date
    

プッシュ

  • プッシュしたコミットがリモートへ反映されるのではなく、プッシュしたブランチ全体がリモートへ反映される。

よく忘れるコマンド

# ステージの内容をすべて破棄
git reset .

# 新規ブランチを作成してそこへチェックアウト
git checkout -b <branchname>

# 現在のブランチへ <branchname> を必ずコミットを作ってマージ
git merge --no-ff <branchname> -m "コミットメッセージ"

ツール

Atom との連携が充実している。

difftool や mergetool をこれらで指定できたら便利かもしれませんね。。。

コメントを残す