Skip to content

Commit 1a7b930

Browse files
author
yushe629
committed
3-10-git Gitによるバージョン管理の項の追加
1 parent d554896 commit 1a7b930

File tree

9 files changed

+107
-3
lines changed

9 files changed

+107
-3
lines changed

docs/3-golden-week/10-git/index.md

Lines changed: 107 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,123 @@ import OpenInCodeSandbox from "@site/src/components/OpenInCodeSandbox";
4747

4848
上記のようなページが表示されたら、Title に適切な名前(自分のどの端末かわかるような情報)、Key には先ほどTerminalで表示した公開鍵を入力して登録しましょう。
4949

50-
## Gitによるファイルのバージョン管理
50+
## Gitによるバージョン管理
51+
### ローカルのリポジトリをGitで管理
52+
Gitのリポジトリは、コミットと呼ばれるソースコードへの変更の塊の集合です。適当なプロジェクトを、Gitの管理下に置いてみましょう。
53+
54+
以下のコマンドをTerminalに入力してください(usernameやprojectnameは自分の環境に合わせたものを使用してください)
55+
```
56+
$ cd /Users/username/projects/projectname
57+
$ git init
58+
Initialized empty Git repository in /Users/username/projects/projectname/.git/
59+
```
60+
61+
:::info VSCode上でのTerminalの開き方
62+
下の画像のようにタブバーから開くことができる
63+
![open terminal](pictures/new-integrated-terminal.png)
64+
:::
65+
66+
ファイルリスト中のファイルの色が変わり、`U`の文字が表示されたでしょうか。
67+
68+
![git init](pictures/git-init.png)
69+
70+
`git init`は、ディレクトリをGitの支配下に置くことを宣言するためのコマンドです。このコマンドを実行することにより、プロジェクトディレクトリはまだコミットが存在しない空のリポジトリになりました。
71+
72+
`U``Untracked`の頭文字で、そのファイルが最後のコミット(といってもまだ作ったばかりのリポジトリなので空ですが)より後に新しく作成され、まだGitによって管理されていないことを表します。
73+
74+
```
75+
$ git add -A
76+
```
77+
78+
左側のパネルを`SOURCE CONTROL`にすると、すべてのファイルリストではなく、変更されたファイルのみのリストを表示させることができます。上のコマンドを実行すると、今まで`U`だった部分が`A (Added)`に変更されました。
79+
80+
![ステージング](pictures/git-staging.png)
81+
82+
`git add`コマンドは、変更を**ステージング**するためのコマンドです。ステージングとはコミットの直前の状態で、Gitに対して該当ファイルをコミットする意思があることを伝えるためのものです。今回は`-A`オプションによりすべてのファイルをステージングしましたが、特定のファイルのみとすることもできます。
83+
84+
VSCodeは、GUIを利用したGitの操作に標準で対応しています。変更一覧に表示されるプラスボタンがステージング、マイナスボタンがその解除に当たります。
85+
86+
最後に、ステージングされたファイルをコミットしてみましょう。
87+
88+
```
89+
$ git commit -m "init"
90+
```
91+
92+
コミットが作成され、ファイルリストは白色に戻りました。なお、gitではコミットを作成するとき、そのコミットによって行った変更を説明するための**コミットメッセージ**を付けることになっています。それを指定するためのオプションが`-m`です。
93+
94+
![コミット](pictures/git-commit.png)
95+
96+
なお、これ以降は、最後のコミットと比較し、新しく追加されたファイルには`U`が、編集されたファイルには`M (Modified)`が付与されます。ある程度変更がまとまったら、ステージング(`git add`)、コミット(`git commit`)を繰り返してプログラムを書き進めていきましょう。
97+
98+
![さらに編集](pictures/additional-changes.png)
99+
51100
:::tip `.gitignore`
52101
`.gitignore` ファイルで指定されたファイルはコミットされない。`npm install` で簡単にダウンロードできて容量が大きいのでバージョン管理するメリットのない `node_modules` や、機密情報や環境ごとに異なる情報を含む `.env` といったファイルが指定される。
53102
:::
54103

104+
### GitHubとの同期
105+
ローカルで管理しているリポジトリをGitHub上のリポジトリに同期させてみましょう。
106+
107+
108+
![GitHub上でリポジトリを作成する](pictures/new-repository.png)
109+
110+
GitHubでは、Webインターフェースを使用してGitリポジトリの操作をすることができます。`Repository name`に適当な名前を入力して、`Create repository`を押しましょう。
111+
112+
![新しいリポジトリ](pictures/repository-created.png)
113+
114+
`[email protected]:アカウント名/リポジトリ名.git`の部分は、GitHub上に新しく作ったリポジトリの場所を表すURLです。
115+
116+
ターミナルに戻り、以下のコマンドを実行します。
117+
118+
```
119+
$ git remote add origin [email protected]:アカウント名/リポジトリ名.git
120+
```
121+
122+
このコマンドを実行することで、ローカルリポジトリに対し、URLで指定したリポジトリを`origin`という名前で関連付けさせます。
123+
124+
:::note
125+
`origin`という名前は慣習的に決まっているものです。別の名前で登録することもできますが、あまり一般的ではありません。
126+
:::
127+
128+
`origin`に対し、ローカルリポジトリの変更を**プッシュ**しましょう。
129+
130+
```
131+
$ git push -u origin master
132+
```
133+
134+
:::info
135+
この操作の際、初回は以下のような警告が出る場合があります。
136+
```
137+
The authenticity of host 'github.com (13.114.40.48)' can't be established.
138+
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
139+
Are you sure you want to continue connecting (yes/no/[fingerprint])?
140+
```
141+
これは、接続先となっているGitHubが、なりすましではなく本物のGitHubであると信頼してもよいかを尋ねるメッセージです。家庭用のインターネット回線、UTokyo WiFi等、十分に信頼できるネットワークに接続している場合は問題ありませんので、`yes`を入力して続行させてください。
142+
:::
143+
144+
:::tip
145+
`-u`オプションは、初回の`push`時にその宛先を記憶し、次回以降自動的にその場所を指定するためのオプションです。2回目以降は
146+
147+
```
148+
$ git push
149+
```
150+
151+
だけで構いません。`master`は、**ブランチ**と呼ばれるソースコードの編集の分岐の名前を表すものですが、この回ではまだ詳しく扱わないこととします。
152+
:::
153+
154+
GitHubをリロードしてみてください。変更が反映されているのを確認できるはずです。
155+
156+
![GitHub上のリポジトリが更新された](pictures/github-updated.png)
157+
158+
55159
## おすすめ拡張機能
56160

57-
- Gitlens
161+
- Git Lens
58162

59163
コミットの差分などが見やすくなり便利
60164
![gitlens](./pictures/gitLens.png)
61165

62-
- Gitglaph
166+
- Git Glaph
63167

64168
コマンドパレット(Cmd + Shift + P)に Git Graph: View Git Graph (git log)というメニューが出て見やすい
65169

38.1 KB
Loading
34.7 KB
Loading
48.2 KB
Loading
48.6 KB
Loading
29.7 KB
Loading
30.4 KB
Loading
24.9 KB
Loading
85.6 KB
Loading

0 commit comments

Comments
 (0)