Upjohnを讃えよ

一晩中音を止めないで

Gitについて

業務で使うGitの運用方法がややこしくなってきて(本来それで正しい)

めちゃくちゃマージコンフリクトを発生させたので、ちゃんと勉強しようと思った。

 

本を読んでいて使えそうだなとか、知らなかったなってことをメモ。

 

◆コミットを戻す

 戻したいコミットを右クリック→「現在のブランチをこのコミットのまでリセット」

・soft

  →→ローカルでのこれまでの変更はそのままにコミットだけを移動。
・mixed

  →→作業コピーの変更はそのままにするが、インデックスの状態はリセットする。
・Hard

  →→すべてのファイルの変更を破棄して、そのコミットに戻る。

 

◆バージョン管理をしなくてもよいファイルに対して

 

・「.gitignore」

 「.gitignore」に管理しないファイル名を記述することで

 自動生成される不要ファイルや、管理対象でないファイルをgitの対象外にする。

 

・既にコミットしてしまった内容を管理しないようにする

 

 ①該当ファイルを追跡しないように設定

 ②該当ファイルを.gitignoreに追加

 

◆マージの結果とその種類

 

・Already up-to-date

 両方の環境の内容が同じで、マージする必要がなかった場合

・Fast Forward

 片方の環境が古いだけで、もう一方の環境でだけ変更がある場合→新しい環境をすべて正として取り込んでしまう

・Auto Merge

 両方の環境の差分について、同じファイル中の同じ個所の変更がなく、自動でマージが完了できた場合

・Conflict

 両方の環境で同じファイルの同じ個所を変更してしまっていて、作業した人にどうすればよいのか確認が必要になった場合

(よくやらかすマージコンフリクト)

 

◆コンフリクト防止・対策

・中央リポジトリ(中継)を作ってお互いに同期する

・git初心者がプッシュした後にgit玄人がプッシュするルールを作る

 →コンフリクト発生した場合に玄人が対応するように

・コンフリクト発生に備える

 →コンフリクト発生した場合にどう解決するかメンバー間で決めておく

 

◆タグ

タグ=コミットIDにつける目印

 

◆スタッシュ

何らかの理由で作業を一時中断し、作業着手前の状態に戻し他の割り込み作業を行いたい場合に、ブランチではなくスタッシュを使う。

中途半端な状態のブランチをコミットしたくない!時に退避用に使う。

 

◆コミットもスタッシュもしないでブランチを切り替えると?

作業中のデータは、移行したブランチに引き継がれてるので

意識せずにコミットすると本来コミットすべきブランチではないブランチにコミットしてしまう。

(やりがち)

スタッシュかコミットをしてからブランチを切り替える。

 

◆過去の状態に戻る

・checkout

現在作業しているファイルの状態をチェックアウトしたコミットの時点まで戻す。

・revert

指定したコミットで行った変更の逆の編集作業を行ったことにして、打ち消す。

例:masterブランチに対してコミットを行ってしまったが、本来別のブランチに行うべきだった。masterブランチは元に戻したい

・reset

作業中のブランチを変えずに、ブランチ自体を過去の状態に戻したくなった場合に使用。→「現在のブランチをこのコミットまでリセット」

 

◆GitFlow

ブランチ運用ルールの一つ