こんにちは、ブログ管理人のtetsuです。
プログミング初心者ですが、情報共有や学習記録として記事を書いてみます。お手柔らかにお願いします。
今回はGitとGitHubの基本操作を勉強した記録です。
この記事は2020年12月に勉強したときの内容です。
使用したパソコンはmacOS、テキストエディタはVisualStudioCodeです。
既にGitHubにはアカウント登録済みという前提です。
まず、学習するための準備としてgit_testフォルダをデスクトップに作ります。
テキストエディタを開いて、git_testフォルダの中にtest1.txtファイルを作成し、文字も入力しときします。
ターミナルを開いて次のコマンドでデスクトップに移動します。
% cd Desktop
更に次のコマンドでgit_testフォルダへ移動します。
Desktop % cd git_test
次のコマンドでgit_testフォルダの中にローカルリポジトリを作成します。
git_test % git init
なお、ローカルリポジトリは隠しフォルダのため次のコマンドで作成されたのか確認します。
git_test % ls -a
次のように.gitが表示されていればOKです。
そして、ここから実際にGitとGitHubを使ってみます。基本的な流れは次の通りです。
①ファイルの変更をステージングエリアへ追加
②ローカルリポジトリにコミット
③GitHubのリモートリポジトリにプッシュ
test1.txtファイルの2行目に文字を追加し、内容を変更してみます。
この変更をステージングエリアへ追加するために、ターミナルで次のコマンドを実行します。
git_test % git add test1.txt
ローカルリポジトリにコミットするために次のコマンドを実行。
git_test % git commit
すると、次の画面のようにviテキストエディタというものが自動で開かれます。
viの操作方法は特殊で、まず入力するために半角でキーボードの「i」を押す必要があります。
先頭にコミットメッセージというものを入力しますが、今回は「1st commit」と入力してみましょう。
保存して終了するためには、まずキーボードの「esc」を押して、次に「:wq」と入力後にエンターを押してください。すると、元のターミナルの画面に戻ります。
GitHubのリモートリポジトリにプッシュするために、一番最初だけはインターネットでGitHubを開いて画面右上にある「+」マークの中から「New repository」を押してください。
画面が切り替わったら「Repository name」に今回は「git_test」と入力します。
そして、画面の一番下にある次のボタンを押します。
画面が切り替わったら下の方に「…or push an existing repository from the command line」というのがあるので、その中の3行のコマンドを順番にターミナルで実行します。
ターミナルで上3つのコマンドを実行したあとは、ブラウザに戻って再読み込みします。
すると、git_testというリモートリポジトリが作成されていることが確認できます。
なお、下の方にある「test1.txt」を押すと今回の変更が反映されていることを確認できます。
このように先程test1.txtファイルを変更したのと同じ内容になっています。
これで次回からGitHubのリモートリポジトリにプッシュする場合は、次のコマンドを実行したらOKです。
git_test % git push origin main
一応、既存のGitHubのリモートリポジトリにプッシュするための方法も紹介しておきます。(今回はこの設定を行う必要はありません。)
まずGitHubの画面右上のプロフィール画像横の「▼」をクリックすると表示される「Your profile」をクリック。
ページが切り替わったら「Repositories」をクリック。
その中から今回は「git_test」をクリックします。
画面が切り替わったら、そのページのURLをコピーします。
※「https://github.com/ユーザーネーム/git_test」となっているはずです。
ターミナルを開いて「git remote add origin コピーしたURL」を実行したらOKです。
git_test % git remote add origin https://github.com/ユーザーネーム/git_test
※もし今回実行した場合は、既に登録しているので次のようなエラーメッセージがでます。
ここからは、GitHubの画面右上にあるプロフィール画像▼→Your profile→Repositories→git_testの画面について説明します。
色々タブがありますが、その中の「<>Code」で作成しているコードの管理をすることができます。
まず、リポジトリの説明文を登録しておきたいので画面右側にある「About」の歯車マークをクリック。
「Description」に説明文を書きます。
書き終わったら次のボタンを押せばOKです。
元の画面に戻ってAboutが書き換わっていると思います。
そして、この画面の主な説明ついては次の通りです。
ファイル名をクリックすると詳細を表示できます。
このページでの主な説明は次の通りです。
ちなみに、Gitで管理するべきではないファイルには気をつけましょう。例えばmacOSで自動生成されるファイルやパスワードが記載されているファイルなどです。
gitで管理したくないファイルは予め「.gitignoreファイル」に指定することで管理外にすることができます。
.gitignoreファイル自体は自分で作成します。なお、.gitignoreファイルでは「#」から始まる行はコメントとすることができます。
特定のファイルを指定する場合はそのファイル名を書きます。(例)test1.txt
特定のフォルダを指定する場合はフォルダ名のあとに「/」を書きます。(例)git_test/
特定の拡張子で指定することもできます。(例)*.exe
特定のフォルダ内の拡張子を指定することもできます。(例)git_test/*.txt
また、予め「.gitignoreファイル」に指定するのを忘れてしまい、Gitの管理から削除したいファイルがある場合は「git rm〜」コマンドを使います。
「git rm –cached ファイル名」で、ローカル上のファイルは残したままGitの管理から削除します。なお、予め.gitignoreファイルに指定しておくことを忘れないように気をつけましょう。
「git rm ファイル名」で、そのローカル上のファイルごと一緒に削除します。
「git rm -r フォルダ名」で、そのローカル上のフォルダごと一緒に削除します。
ちなみに、間違えてGitの管理から削除してしまったファイルを元に戻す場合は「git reset HEAD ファイル名」を実行したらOKです。なお、ファイルごと一緒に削除した場合だとこれだけではローカル上からファイルが消えたままなので「git checkout ファイル名」を実行することでローカル上のファイルも元に戻すことができます。
↓コマンドメモ↓
【git add 〜】
変更したファイルをステージングエリアに追加する。
「git add ファイル名」で指定のファイルを追加する。
「git add .」で全てを追加することもできる。
【git commit】
ステージングエリアに追加したものをローカルリポジトリにコミットする。
「git commit -v」で実行すると何の変更をしたのか見ることもできる。
なお、viテキストエディタの先頭に入力するコミットメッセージは「1行目に変更内容の要約、2行目は空白、3行目に変更した理由」とすることで分かりやすくなる。
「git commit -m “コミットメッセージを入力”」で実行するとviテキストエディタを開かずにそのままコミット出来る。
「git commit –amend -m “修正したいコミットメッセージを入力”」を実行すると、前回のコミットメッセージを修正することも出来る。
【git push〜】
コミットした後にgithubのリモートリポジトリにプッシュする。
「git push origin main」で、GitHubのリモートリポジトリのデフォルトブランチ名であるmainにプッシュできる。
もしgit push の後にコミットメッセージを変更したくなった場合の手順も説明します。
まず「git rebase -i HEAD~5」を実行するとviエディタに過去5件のコミットメッセージが表示されます。その中から変更したいメッセージの頭にある「pick」を「e」又は「edit」に打ち替えて「:wq」で保存して終了します。すると次のメッセージが表示されるはずです。
次に「git commit –amend」を実行します。すると、viエディタに変更したいコミットメッセージが表示されるので、ここで変更したいコミットメッセージに打ち替えます。そして「:wq」で保存して終了します。
次にrebaseを実行して編集を終了さえるため「git rebase –continue」を実行。次にメッセージが表示されると思います。
最後にリモートへpushするため「git push -f origin main」を実行します。GitHubを確認すると変更が反映されているはずです。
【git status】
変更状況が確認ができる。最新のgit commitから何も変更していなければ「nothing to commit」と表示される。
ファイルを変更したがステージングエリアに追加していない状態で「git statsu」を実行すると、赤文字でそのファイル名が表示される。
ステージングエリアへ追加後でgit commitはしていない状態に「git statsu」を実行すると、赤文字ではなく緑色で表示される。
更にgit commitして「git statsu」を実行すると、そのメッセージは消える。
なお、GitHubのリモートリポジトリにプッシュが終わっていないと「your branch is ahead of ‘origin/main’ by ○ commits.」と表示される。
【git log】
コミットの変更履歴を見ることができる。
git log中に画面を下げる場合は「j」、画面を上げる場合は「k」、終了する場合は「q」を押す。
「git log –oneline」で、変更履歴をコンパクトに表示することができ、見やすくなる。
「git log -n 数値」で、その数値分だけ直近の変更履歴を表示できる。
上記2つを組み合わせて「git log –oneline -n 数値」とすることも出来る。
「git log -p 」で、どのファイルをどのように変更したのかを表示できる。
「git log -p ファイル名」で、そのファイルをどのように変更したのかを表示できる。
なお、表示される「commit 〜」という「〜」の部分をハッシュ値という。ハッシュ値を使うことによりその履歴のコミットの状態に戻すこともできる。
戻す場合は「git reset –hard ハッシュ値」を実行するだけだが、本当にそこに戻っても問題ないかよく考えてから実行すること。また、先に一度コミットしてから実行すること。
なお、git reset –hardを実行したあとに後悔した場合は、git reset –hardする前のハッシュ値でgit reset –hardを実行することにより、そのコミット履歴へ戻ることもできる。
【git diff】
ファイルをステージングエリアに追加する前に変更状況を確認することができる。
ステージングエリアに追加後は「git diff HEAD」で、コミットする前に変更状況を確認することができる。
これらの内容は一人で開発するために最低限必要な基礎知識なので、あとは実際に使ってみながら覚えていきましょう。
もしコマンドラインが苦手な方はSourceTreeというマウスを使って視覚的に操作できるソフトもあります。
なお、SourceTree操作でGitやGitHubを勉強できるオススメ教材はこちらです。
とりあえずGitとGitHubの基本を学びたいという方も漫画なので分かりやすいと思います。ちなみにコマンド編もウェブで連載されています。
私は最初にこの本で勉強しましたが、Gitの入門書としてはオススメです。
今回は以上です。
コメント