ステップアップ備忘録

学習用備忘録

gitの勉強

今回はgitというバージョン管理システムについてです。Dotinstallの#1~#16までのまとめ。

わかったこと
・ git → バージョン管理システム
・ バージョン管理の流れ
 1. ファイルを作成・修正
 2. まとまりを一時保存
 3. 最終的に保存する
・ 管理の流れと作業場所
 1のファイルの作成や修正は作業ディレクトリ内。
 2のまとまりを一時保存はステージエリア内
 3の最終的な保存はリポジトリ
(2のステージエリア内に一時保存をすることで、意味のあるまとまりをリポジトリ内に
きれいに保存することができる)
リポジトリの種類
 ローカル → 一人で作業をする
 リモート → web, ネットワーク上でコードを共有しながら作業をする
・ 設定
 gitは保存する際にユーザ名とeメールを指定する。
  git config –grobaluser.name “名前” ← 名前を指定
  git config –grobaluser.email “email” ← emailの指定
 ほかにも、
git config color.ui true → 色分けをする
 などがある。
設定が終わったら、git config –lで設定が確認できる。
gitを使用する場合は、コマンドの前にすべてgitとつける。
・ git config –helpかgit help configでヘルプが確認できる。
・ git init → ディレクトリをgitで管理する
     (指定したいディレクトリをカレントディレクトリにし、コマンドを実行)
     Intalized emptygit~という文を確認できれば準備OK
vimでファイルを作成していく。
・ git add → ステージエリアに保存する
・ git commit → リポジトリに保存する、この際メッセージを追加する
・ git log → ログを確認する
 Commit 〇〇〇← 長い数字はID
 作成者
 日時(更新や追加の)
 というようなlogを見ることができる。
・ git log –oneline → 1行でログを表示する
・ git log -p → 具体的な変更を見る
・ git log –stat → どのファイルが何か所変わっているかを示す
・ git status → 今の状態を教えてくれる
・ git checkout → 変更を取り消す
・ git statusを使用しながらコマンドを探すことも有用
・ git diff → 変更点を教えてくれる
     (変更後にステージエリアに追加し、まだリポジトリには追加していない場合)
・ git diff –cached → 変更点を教えてくれる
         (変更後にリポジトリにまで追加した場合)
・ git add . → 今のディレクトリ以下すべてをステージエリアに追加したい場合


・ git管理をしない設定
 vim git ignore → 作業ディレクトリに作る
 *.log → logをすべて無視するという意味の一文を追加する
 保存する
  ファイルサイズが大きい、管理をするほどではないファイルがあるときに使う
  git ignore → vimで指定した文面は、保存した場所から改装すべてに適用される
・ git commit –m “コメント” → エディタを立ち上げずにコミットすることができる

 

・ 直前のコミット内容に、新しくコミットするほどでもない些細な変更を加えるとき
 例:index.htmlに”ライン2”という言葉を追加後、その行にインデント(字下げ)を加えた
  ① vim index.html → 編集後保存する
  ② git add .
  ③ git commit –amend → amendは変更するの意
  ④ ;wq → そのまま保存をする

 

・ 過去のバージョンに戻るとき
 コミットする前に変更したい場合
  git reset –hard HEAD → hardはディレクトリファイル全てを指定
              HEADは直前のコミットのこと
  git reset –hard HEAD^ → ^は前の前のコミットのこと
 この2つか、もしくはコミットIDの上7桁をコピペする

gitは、コミットの全てを保存しているので簡単に過去のバージョンに戻れる
(オプションによってはディレクトリやファイルを消してしまうこともあるので注意)

・ branch → 分岐点のこと、別バージョンを並行して操作ができる
 git branch → 分岐がすべてでてくる
  *master → いまmasterという分岐にいる(*は今いる場所)
 git branch hogehogeという分岐ができる
 git checkout hogehogeにスイッチを切り替える
 このhogeの中での作業をコミットすると、masterでの作業内容は残したまま新しく
 コミットする。
・ 別のbranchに反映させる
 git merge hoge → マージさせたいbranch(大元)から、マージさせるbranchを指定
 (mergeは混ぜるの意味)
 git branch –d → 不要になったbranchの削除
 git checkout –b hogehoge →hogehogeというbranchを作り、スイッチも切り替える

 

・ マージの衝突 → 同じ部分を違うbranchで違った内容で書きこむ
コミットする際に、衝突が起きてることを知らせてくれる
 → vimで修正(違っている部分をどちらか選ぶか書き直しする、選ぶ場合は選ぶほうをしてそれ以外を削除)
 → 保存後にgit add.とgit commit –m “コメント”という風にコミットする。
 → 履歴は2つ残る

 

〇 まとめ
今までにまったく扱ったことないものなので、まとめてはいるけれどだいぶわかっていない。こういう使い方をするんだということ覚えたうえで、実際に練習して疑問点をしっかりと把握しておくのが大切。