この記事について
本記事は社内で実施したGit講習のスライドを元に作成された記事です。
Gitを使ってはいるものの、どういう構造になっているかとか仕組みについてはあまりわかっていないという方たちを対象にしています。
前回
イントロダクション
用語の解説
実際にGitを操作してみる前に幾つかの用語について説明しておきます
ワークツリー
ワークツリー(または作業ディレクトリ、作業ツリーとも呼ばれます)は、実際に作業しているディレクトリの事です。
インデックス
インデックス(またはステージングエリア)は、Gitが次のコミットでリポジトリの記録するファイルの集合体です。
コミット
コミットは、インデックスをローカルリポジトリに保存することです。
プッシュ
pushは、ローカルリポジトリの変更をリモートリポジトリにアップロードすることです。
プル
pullは、リモートリポジトリの最新の変更をあなたのローカルリポジトリにダウンロードし、その変更を統合するために使用されます。
実践
コマンドを使っての実践
まずはワークツリーとなる作業ディレクトリを用意します。
下記のコマンドでnew-repoという名前のディレクトリを作成し、そのディレクトリに移動をします
mkdir new-repo
cd new-repo
次にローカルリポジトリを作成しましょう
下記のコマンドでローカルリポジトリが作成されます。
git init
下記のようなメッセージが表示されたら成功です。
Initialized empty Git repository in /Users/kouhai/new-repo/.git/
では、次にhello.txtというファイルを作成して、そこに「Hello, Git」と書き込んでみましょう。
echo "Hello, Git" > hello.txt
ファイルを変更したのでこのファイルをリモートリポジトリに上げてみましょう。
まずはインデックスにファイルを追加します。
git add hello.txt
インデックスにファイルを追加したら次はコミットをします。
コミットをする時にはコミットメッセージというどんな内容をコミットしたかを表すメッセージをつける必要があります。
下記のコマンドの「Initial commit」の部分がコミットメッセージです。
git commit -m "Initial commit"
コミットが成功すると下記のようなメッセージが表示されます。
[main (root-commit) 1842a48] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
GitHubにリモートリポジトリを作る
GitHubにリモートリポジトリを作ってみましょう。
GitHubにログインしてください。
これでGitHub上にリモートリポジトリが作成されました。
リモートリポジトリにPUSHする
リモートリポジトリができたのでPUSHしてみましょう。
まずはローカルリポジトリとリモートリポジトリを紐付けします。
git remote add origin https://github.com/xxxxxx/test-repo.git
「https://github.com/xxxxxx/test-repo.git」の部分が先ほどコピーしておいたGitのURLになります。
「origin」の部分はリモートリポジトリの名前です。任意の名前をつけられますが、originとするのが一般的なようです。
リモートリポジトリが追加できたらいよいよPUSHです。
下記のコマンドを実行してみましょう。
git push -u origin main
このコマンドは「originというリモートリポジトリのmainブランチにPUSHする」という意味です。
これが成功すると下記のようなメッセージが表示されるはずです。
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 223 bytes | 223.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/xxxxxx/test-repo.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
リモートリポジトリをクローンする
次に他人が作ったリモートリポジトリをコピーしてローカルリポジトリを作成(クローンすると言います)してみましょう。
git clone https://github.com/xxxxx/test-repo.git new-repo-clone
このコマンドは「https://github.com/xxxxx/test-repo.gitというリモートリポジトリをnew-repo-cloneディレクトリにクローンする」という意味です。
pullする
プルを実行する場合は下記のコマンドを実行してください
git pull
VSCodeでの実践
VSCodeでもGitの操作ができますので操作方法を見て行きましょう。
SourceTreeでの実践
SourceTreeを使う場合の操作方法も見て行きましょう。
pull/push/fetch
実践を通してpullとpushについて理解を深めたところでもう少し詳しくみていきましょう
pushは、ローカルリポジトリの変更をリモートリポジトリにアップロードするために使用されます。
pullは、リモートリポジトリの最新の変更をあなたのローカルリポジトリにダウンロードし、その変更を統合するために使用されます。
fetchは、リモートリポジトリの最新の情報をローカルリポジトリにダウンロードするために使用されます。
gitignore
下記のようなファイルはGitで管理したくありません。
・環境変数が定義された設定ファイル
・パッケージ管理ソフトで管理されているパッケージ類
・ログファイル
それらのファイルはgitignoreファイルに記載することでGit管理から外すことができます。
次回
第5話「ブランチの理解:作業の分岐点」へと続きます
https://qiita.com/sho_fcafe/items/fe3dc7b80e0622f61032