![見出し画像](https://assets.st-note.com/production/uploads/images/27586426/rectangle_large_type_2_6243d4dc987ab3658d3ab10d52fbcafe.jpg?width=1200)
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でもコード書けると気付いたので、少しだけ使ってみようと思います。)
【図解(まだ途中)】
間違いとか見つけたら教えていただけると励みになります!
手描きで満足しちゃうタイプなので、どなたか追記したり直したりデータ化していただけると有難いです!
追記2020/6/18:
上の図への、修正&コメントをいただきました!ありがとうございます!!(図の修正も追々やっていきたいです…)
③checkout:データを取り戻したい
→「指定したバージョンに切り替える」
⑤merge:ブランチのデータをメインにしたい
→「xxブランチのコミットを今いるブランチに取り込む(結合)」
checkoutは取り戻すと言うより、指定したバージョンに切り替えるって感じです。
— nyao@読書と編集 (@nchiba) June 6, 2020
「あの時のバージョンではどんな動きだったんだっけ」って思ったらcheckoutでそこに行けば動かせる。
コミットは細かくやっていくけど、一定の動作を確認したコミットは、tagで名前付けておくとcheckoutの時便利です。
××ブランチのコミットを今いるブランチに取り込む(結合)
— いとむら@SUNABACOコザ (@yoskmr) June 6, 2020
です! pic.twitter.com/2HWY9Kajsf
【ここから本文】
※手描き図解の内容がすべて載っているわけではないことに注意
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をブランチ名に変える。
この記事が気に入ったらサポートをしてみませんか?