見出し画像

Git + VScode + GitHub 覚え書き(その3)

ここ1か月ほど、プログラミング講座でWebアプリ制作を学んでいます。
ウェブサイトの見た目の作り方や考え方、内部のプログラムの動き、大量のデータを扱っているデータベースの仕組み、お仕事の進め方、など多岐に渡ります。

※プログラミング講座…https://sunabaco.com/

2か月の講座のうち、座学は実質1か月。残りの期間は、受講生同士のチームを組み、Webアプリを制作します。
チーム作業で欠かせないのが「ファイル共有」。やり方はいろいろありますが、現在メジャーな方法が、Gitと呼ばれるもののようです。

プログラミング講座でのGit解説は2日間でしたが、そこではどうしてもわからないことがたくさんありました。(なので備忘録書いてました)
・1日目…Git + VScode + GitHub覚え書き
・2日目…Git + VScode + GitHub覚え書き(その2)

その後、わからないなりに使っていたら、4日目くらいで全体像が見えてきて、面白くなってきた!ので、現時点でのメモを残しておきます。

(技術系の記事って、ハテブロとかqiitaとかのほうがいいらしい、っていう記事を見たんだけど、noteに書き始めちゃったのと、noteでもコード書けると気付いたので、少しだけ使ってみようと思います。)

【図解(まだ途中)】

間違いとか見つけたら教えていただけると励みになります!
手描きで満足しちゃうタイプなので、どなたか追記したり直したりデータ化していただけると有難いです!


画像1

追記2020/6/18:
上の図への、修正&コメントをいただきました!ありがとうございます!!
(図の修正も追々やっていきたいです…)

③checkout:データを取り戻したい
 →「指定したバージョンに切り替える」

⑤merge:ブランチのデータをメインにしたい
 →「xxブランチのコミットを今いるブランチに取り込む(結合)」


【ここから本文】

※手描き図解の内容がすべて載っているわけではないことに注意

1.ローカルリポジトリの設定(フォルダに対する設定)

自分のPC上に、ローカルリポジトリにしたいフォルダ(ディレクトリ)を用意し、コマンドプロンプトで、そのフォルダへ移動(cd)し、
git init

これで、そのフォルダがローカルリポジトリになった。

※フォルダ内にできあがる.gitフォルダは、気にしなくてよい。

2.Gitで作業記録をセーブ

2-1. (さっき用意したフォルダの中で)楽しくWeb制作を進める。index.htmlを作ったりstyle.cssを作ったりapp.pyを作ったり…
※この段階ではまだgitでの管理対象になっていない。

2-2. Gitでの管理対象にする(ゲームのセーブポイントを設定するイメージ)

この時点でセーブしておきたいな…ってところで、コマンドプロンプトで
git add ファイル名 // 指定したファイル
もしくは、
git add . //そのフォルダ内全部

※この辺りの状況は、git statusで調べられる


その後、
git commit -m "xxxx" //変更来歴を追記してコミット

すると、Gitにセーブデータが出来上がる。

※ログ状況は、git logで調べられる


4.ファイルを消して/壊して/しまった!取り戻したい!

そのファイル/フォルダがコミット前なら、
git checkout ファイル/フォルダ名 //そのファイル/フォルダを取り戻す

コミットしているならば、コミットした時点の状態に戻す
git checkout コミットID番号 //コミット番号は先にgit logで調べておく


5.ブランチで作業したい

※一人で制作するなら要らないかもしれないけど、できると便利。

git branch //今自分がブランチにいるのかマスター(master、本流)にいるのか

git branch ブランチ名 //ブランチを作る

git checkout ブランチ名/master //ブランチかmasterかの切り替え

git merge ブランチ名 //ブランチをマスターに統合する


※ブランチの考え方、プルについて


5-2.変なブランチ「HEAD detached ~」

※背景:
作業していたら、ローカルリポジトリにはコミットできているのに、GitHubにはどうしてもプッシュできない(でもエラーも出ない)…という謎現象が起きていた。
よくよく調べていくと、ブランチを作らずmasterで作業していたはずなのに、謎ブランチ「HEAD detached ~」というところにいた。ずっとここで作業しコミットしていたようだった。試しにmasterに戻ると、この謎ブランチは表示されなくなり、ローカルリポジトリのデータは、masterで最後にコミットした時点の無いように戻っていた。
(かなり前の段階だったので、実質、ほぼ全データ消滅した状態)

どうしようもないかなと思ったけど、いろいろ調べたら戻せる方法があって、実際に戻せたので備忘録代わりにメモしておく。

参考にしたサイト
http://zorinos.seesaa.net/article/452331302.html

成功した手順
・自分がいるブランチ確認→masterへ移動
 git branch
 git checkout master


・全ログ表示
 git reflog

・ほしいlogを狙ってコマンド実行
 git reset --hard HEAD@{1}
 ※なみカッコの中の数字は、git reflogで出たリストを見て、自分で設定する。

・GitHubに保存
(私は新しいリポジトリ作ったけど、元々保管予定だったリポジトリがあるならそこで十分だと思う。自分の場合は、ややパニクってたのと、とにかくデータ失うのが怖かったので別の場所に置いておいた)


※原因はなんだったのだろう?未検証だけど、以下のどれか、ではないかな~と思っている。
・ローカルリポジトリになってるフォルダを、.gitファイル含めコピペして流用した。
・.gitファイルを手動削除した
・その後、git initをした

6.GitHub(リモートリポジトリ)との連携

※リモートリポジトリのmaster(ブランチではないほう)に保管する方法。

・GitHubにリポジトリ(リモートリポジトリ)を作る
 GitHubサイトで、New repositoryを作成

・リモートリポジトリとローカルリポジトリをつなげる
 コマンドプロンプトで、
 git remote add origin master GitHubのリポジトリの場所(URL)

・リモートリポジトリとローカルリポジトリが繋がったか確認
 git remote -v

・GitHubに、ローカルリポジトリからデータをプッシュする
 git push -u origin master

・リモートリポジトリとローカルリポジトリを切り離したいとき
 git remote rm origin

※originとかmasterは自分のリポジトリの設定に合わせて変える。例えば、自分のファイルをGitHub上のmasterではなくブランチのほうにプッシュしたい時は、masterをブランチ名に変える。

この記事が気に入ったらサポートをしてみませんか?