30代専業主婦の独学エンジニア挑戦ブログ

実務未経験の30歳の専業主婦が独学でエンジニアを目指すブログです

gitについて学ぶ

勉強記録 

今日はgitの基礎について学びました。

GitHubのアカウントを作成し、実際に手を動かしながら学びました。

基礎を学んだあとTravis Swicegoodさんの著書「入門git」を読んで勉強終了です。

以下今日やったことのメモ書きです。

 

 

入門git

入門git

  • 作者:Travis Swicegood
  • 発売日: 2009/08/12
  • メディア: 単行本(ソフトカバー)
 

 

今日やったこと

gitとは?

バージョン管理システムのこと。どのファイルを変更したのかわかる。

.gitがあればgit管理になる
.gitができるときは・・・
1.git cloneしたとき
2.git init したとき(自分でgit管理にしたいときに)
 
よく使うgitコマンド
git status 状態の確認
modified →変更されたファイル
Untracked files → 新規追加ファイル
 
git diff 変更内容
 
git checkout ローカルリポジトリのファイルをローカルに持ってくる
 
 
ローカルにリモートで作成したリポジトリのクローン
リポジトリ→ファイルや変更履歴をおいておく場所
 
1.github で新しいリポジトリ作成(Descriptionにはリポジトリの説明文) 
2.clone or Downloadボタンを押すとURLが出る
3.コマンドで git clone リポジトリのURL ローカルにクローンができる
 
リモートのリポジトリに新規ブランチを作成
1.githubのBranchをクリック
2,find or create a branch…のところに作りたいブランチ名を入力
 
ローカル環境に新しくブランチを作成
git branch ローカルにあるブランチ一覧  *がついてるのが今いるブランチ
git checkout -b 新しく作りたいブランチ名 今いるブランチをもとに新しいブランチ作成
 
ちなみに
git branch -a リモートとローカルのブランチを全て表示
 

 

リモートの変更内容をローカルに取り入れる
1.git pullを使う方法
git pull リモートリポジトリの変更内容をローカルに取り入れる 
pullのあとにブランチ名をいれても良い
pullしながら開発しないと、古いファイルを直してた〜なんてことも・・・
 
2.git fetchとgit checkoutする方法
1.git fetch リモートリポジトリの情報をローカルリポジトリに反映(マージされてない)
リモートに反映しても、fetchしないとローカルに反映されない
 
2.git checkout ブランチ名 ローカルに指定したブランチがあればブランチ切り替え、なければリモートからとってきて切り替え
 
pullとどう違うの?→ pullはfetchしてmarge
 
ファイルをステージングエリアに設置
git add ファイルをステージングエリアに追加する
 
ローカルリポジトリにコミットする前にまずはステージングエリアにあげる
 
add前(現在の作業ツリー)とステージングエリアとの差分をみるのは git diff
ステージングエリアとローカルリポジトリとの差分をみるのは git diff —cached
 
(ステージングエリアにあげるメリット)
コミットしたくないけど、修正したところを残しておきたい時に便利
どこを直したのかわかりやすい!
git checkout ファイル名 でadd前の状態に戻せる
 
ローカルリポジトリにコミットする
git commit -m “コミットログ(メッセージ)”  メッセージをつけてステージングエリアにあったものを全てコミット
 
git log コミットの履歴をみる
 
git log -p 履歴と変更内容も一緒に表示
 
リモートにプッシュする
git push origin ブランチ名 リモートにプッシュする
 
コミットしていない変更を退避させる
git stash  コミットしていない変更を退避(追いやる)させる
 
git stash pop 退避させた作業の中で最新の作業を復元
ブランチまたいで(切り替えて)popすることもできる
 
現在のブランチの変更をリモートのmasterブランチにmergeする
mergeしたいブランチを、まず先にカレントブランチにmerge
(例えばmasterブランチにmergeしたいときは、先にカレントブランチにmasterをmerge)
git merge ブランチ名 現在のブランチに指定した別のブランチの変更をmergeする 
 
その結果
コンフリクトを起こした場合・・・
git status をするとboth modified となっているはず
コンフリクトしたファイルを直して、コンフリクトを解消する
解消したら git add でステージにあげて git commit でコミットする(-mつけない)
 
Pull requestをする
masterブランチのように大切なブランチにmergeするときは
Pull request → レビューしてもらう →問題なければmerge 
というように、Pull requestごしにmergeを行う
 
githubのNew pull requestボタンからできる
 
ブランチ運用
 
ブランチ運用はプロジェクトによって違う
チームに入ったタイミングでブランチ運用について聞くこと
git flowがベースでGithub flowやgitlab flow などがある
 
タグ
コミットに対してわかりやすい名前をつける
コミットごとにバージョンをつけて管理したいときに使う
 
チェリーピック
ある特定のコミットを別のブランチに反映させることができる。
まだ使えない機能があったりなど、全部をmergeするのに問題がある場合に使用。
git cherry-pick  取り込むコミットID  コミットID はgit logとかで確認できる
 

次回に向けて

明日はLinuxコマンドについて勉強します。

超基本的なLinuxコマンドは使えるのですが、もっと使いこなせるように勉強していきたいと思います。