おばちゃん的GitとGitHubの使い方

Posted on

チーム開発やバージョン管理なんてことが無縁の私、でもGitとGitHubは便利でした

最近Gitが便利だと思えるようになりました😊

1年前はローカルリポジトリとリモートリポジトリの区別もつかない

また英語〜!!、

なんか怖いし〜 

ややこしそう〜 

チーム開発とは無縁の私にはGitHubは関係ないものと思っていました

私のGitHub活用方法

  • 取り消しをやり直したい時
  • フォルダの保管場所
  • 本番環境の確認作業を簡略化する
  • 究極の取り消し手段(clone)

ちなみに1人作業なのでほぼ出来上がってからGitHubにPushしています

作業中はローカルのmainしか使いません

たまにBranchを作る時(冒険する時、やり直す可能性大の時)はコンフリクトが嫌なので、

mainかbranchどちらで作業しているかをめちゃくちゃ意識しています

取り消しを元に戻すことができ(それをまた取り消しもできる)

取り消した作業が新しいcommitになるrevertが便利! 

Command+Zで戻るのとはまた違う便利さです

Command+Zは一度エディタを閉じるともう戻れないので、なかなかエディタが閉じれなかった

Command+Zは取り消しを取り消すことはできないので残したいコードはメモとしてコピペで保存していた

Gitはcommitにコメントをつける手間はかかるけど、確実に変更できる

フォルダはGitHubで管理する

フォルダの保管場所として利用

GitHubにアップロードしたフォルダは、私のメモリとストレージに余裕がないMac😂 から削除している

ネットが繋がっていればコードはGitHubのリポジトリで確認できる(手元のパソコンでエディタ開いて確認するよりお手軽)

必要になればGitHubからPCにダウンロードする(Googleフォトと同じ感覚)

Netlifyとの連携

本番環境を確認する(変更箇所を反映する手間がかからない

静的なサイトならNetlifyにデプロイして確認する

変更はpushするだけで完了し、FTPでレンタルサーバーに上げるよりも簡単

究極の取り消し手段

本番環境にアップロードしている状態に戻したい時、GitHubからcloneしてローカルのフォルダと入れ替える 😅

注意点2つ

操作を間違えていてもターミナルが真っ赤にならず英語なのでわかりにくい為、残したつもりが間違えていて、迷走した経験あり

たまにbranchを作るとbranchで操作しているつもりが注意不足でmainだった(そしてコンフリクト)

コマンドと用語の備忘録

めちゃくちゃ雑な備忘録 😅

ローカルがパソコン 

リモートがGitHub

インデックスは登録する一時的な場所(Gitで管理したいファイルを登録する)

リポジトリはデータなどを保存しておく場所

コンフリクトは競合(同じ場所で異なる操作をしている)

ローカル

//最初の一回だけ(フォルダをリポジトリに変換)
git init  

// インデックスに追加  .は全てのファイルのこと
git add .

//  リポジトリにコメント付きで保存
git commit -m'コメント'
//リポジトリの現在の状態
git status

//commitの履歴
git log

Branch

mainを変更しないで機能を追加したりとお試しするために作る枝

//作成
git branch 名前

// branchの切り替え
git checkout 名前

// 切り替えと作成を同時に
git checkout -b 名前

//branch 削除
git branch -d 名前

//branch の一覧
git branch

取り消し

//例
git reset -- soft HEAD^

// オプション
//全て戻す 
 --hard  

 // HEAD(commit)とindex(add)を戻す       
 --mixed  

 // HEAD(commit)だけ戻す  
 --soft      

// 3つ前 は HEAD^^^ 
// 又は HEAD 〜3 
// 又は @^^^ 

revert

コミットを取り消す新たなコミットを追加する

ちなみにpushのあとでも使える(resetはpushの後は使えない)

//--no-edit viエディター立ち上がらないオプション
git revert commitのID --no-edit
// おまけ  vi 編集

vi ファイル名

i 現在のカーソル位置から挿入。

Esc :w :ファイルを保存する。viは終了しない

Esc :q! :セーブせずに終了

Esc :wq :ファイルを保存しviを終了する

Merge

branchをmainに取り込む(統合)

//注意 mainに切り替えてから
git merge 取り込むbranch名

Rebase

branchと並行してmainも変更されていたらコンフリクト(衝突)する場合があるが、

branchにmainを取り込み、

テストして問題がなくなれば、

mainに取り込む

その時にbranchを付け替えて履歴を整える

branchの枝分かれしたところを、整えた後にmainにmergeしたところに、持ってきてその後にbranchをcommitして履歴を変更する

git rebase

GitHub

リモートリポジトリにはプライベート(自分だけ)とパブリック(誰でも見れる)がある

リモートリポジトリの削除はsetting の一番下、Danger Zoneから削除する

パソコン(ローカル)から GitHub(クラウド)

// 最初だけ
git remote add origin URL

// -u origin mainも最初だけ  2回目以降は git push
git push -u origin main

//ブランチをリモートに登録
git push -u origin 名前

GitHub(クラウド)から パソコン(ローカル)

Zipフォルダをダウンロードすることもできる

//全てのファイルを
git clone URL

// 他の人がGitHubを更新したものを自分のPCに 
//pull は Fetch + Mergeのこと
git pull 

// fetch はMergeなし 
git fetch

その他

他の人のGitHub(クラウド)を 自分のGitHub(クラウド)にコピーする(右上にあるFork)

コピーしてきたリポジトリを変更して他の人のGitHub(クラウド)オリジンにPullを要請する
(左上にあるpull request

ローカルからリモートにpushする前に .gitignoreファイル(リモートにpushしないファイルを指定)を作る 

ほぼ下記のパターン(nodeモジュールとバンドル後のフォルダはリモートに上げない)

node_modules
dist