... | ... | @@ -4,16 +4,18 @@ Git の使い方 |
|
|
Git はバージョン管理システムの一つです。これを利用することで効率良く開発を進めることができます。
|
|
|
複数人での開発プロジェクトに採用すると非常に有用ですが、個人での開発においても簡潔にバージョン管理や作業履歴の記録が行える点で十分に恩恵を感じられるでしょう。
|
|
|
|
|
|
下記のコマンドさえ覚えておけば利用できます。より詳細な使い方を知りたくなったら外部リンクや書籍で調べてみましょう。
|
|
|
## 日常的に利用するコマンド
|
|
|
|
|
|
## git clone
|
|
|
この実験で日常的に利用するコマンドは下記の4つだけです。Gitのより詳細な使い方を知りたくなったら外部リンクや書籍で調べてみましょう。
|
|
|
|
|
|
### git clone
|
|
|
|
|
|
主にリモートサーバにあるリポジトリをローカルマシンへと複製する際に使用します。
|
|
|
```bash
|
|
|
$ git clone https://exp.mtl.t.u-tokyo.ac.jp/各自のユーザ名/b3exp.git
|
|
|
```
|
|
|
|
|
|
## git add
|
|
|
### git add
|
|
|
|
|
|
主にローカルマシン上でおこなった変更の内容を**ステージング**する際に使用します。
|
|
|
ステージングというのは、次に説明する`git commit`で記録されるように準備する、という意味です。
|
... | ... | @@ -25,7 +27,7 @@ $ git add ファイル名 |
|
|
|
|
|
複数ファイルをステージングしたい場合は、`ファイル名`の部分に複数のファイルを書き並べてもよいですし、ファイルごとに`git add`を繰り返しても問題ありません。
|
|
|
|
|
|
## git commit
|
|
|
### git commit
|
|
|
|
|
|
主にローカルマシン上でおこなった変更内容を記録する際に使用します。
|
|
|
具体的には、先の手順`git add`でステージングされたファイルが全て記録されます。
|
... | ... | @@ -36,7 +38,7 @@ $ git add ファイル名 |
|
|
$ git commit -m "コメント"
|
|
|
```
|
|
|
|
|
|
## git push
|
|
|
### git push
|
|
|
|
|
|
主にローカルマシン上で記録した変更履歴をリモートに反映する際に使用します。
|
|
|
具体的には、それまでに行った`git commit`の情報が全て一括でリモートサーバに送られます。
|
... | ... | @@ -51,12 +53,67 @@ TA が定期的に確認する予定ですので、その日の進捗を実験 |
|
|
$ git push
|
|
|
```
|
|
|
|
|
|
## 実験用リポジトリの更新を取り込むための操作
|
|
|
|
|
|
TAから実験用リポジトリ( https://exp.mtl.t.u-tokyo.ac.jp/2022/b3exp.git )が更新されたと案内されたときは、以下の手順で更新をローカルマシンに取り込んでください。
|
|
|
|
|
|
### 実験用リポジトリをローカルマシンに登録
|
|
|
|
|
|
まずは`git remote -v`コマンドでローカルマシンに登録されているリポジトリを確認します。
|
|
|
このwikiの手順に従って作業をしてきた場合は、実験用リポジトリ( https://exp.mtl.t.u-tokyo.ac.jp/2022/b3exp.git )をフォークした各自のリポジトリ( https://exp.mtl.t.u-tokyo.ac.jp/各自のユーザ名/b3exp.git )が``origin``という名前で登録されているはずです。
|
|
|
|
|
|
```bash
|
|
|
$ git remote -v
|
|
|
origin https://exp.mtl.t.u-tokyo.ac.jp/各自のユーザ名/b3exp.git (fetch)
|
|
|
origin https://exp.mtl.t.u-tokyo.ac.jp/各自のユーザ名/b3exp.git (push)
|
|
|
```
|
|
|
|
|
|
このままだと実験用リポジトリ( https://exp.mtl.t.u-tokyo.ac.jp/2022/b3exp.git )の変更を取り込むことができないので、以下のコマンドで実験用リポジトリをローカルマシンに登録します。``upstream``の部分は分かりやすい別の名前にしても構いません。
|
|
|
|
|
|
```bash
|
|
|
$ git remote add upstream https://exp.mtl.t.u-tokyo.ac.jp/2022/b3exp.git
|
|
|
```
|
|
|
|
|
|
`git remote -v`コマンドで実験用リポジトリが``upstream``という名前で登録されていることを確認してください。
|
|
|
|
|
|
```bash
|
|
|
$ git remote -v
|
|
|
origin https://exp.mtl.t.u-tokyo.ac.jp/各自のユーザ名/b3exp.git (fetch)
|
|
|
origin https://exp.mtl.t.u-tokyo.ac.jp/各自のユーザ名/b3exp.git (push)
|
|
|
upstream https://exp.mtl.t.u-tokyo.ac.jp/2022/b3exp.git (fetch)
|
|
|
upstream https://exp.mtl.t.u-tokyo.ac.jp/2022/b3exp.git (push)
|
|
|
```
|
|
|
|
|
|
### 実験用リポジトリの更新を取り込む
|
|
|
|
|
|
実験用リポジトリが更新されたという情報をローカルマシンに取り込むために、以下のコマンドを実行します。
|
|
|
|
|
|
```bash
|
|
|
$ git fetch upstream master
|
|
|
```
|
|
|
|
|
|
この段階では「更新されたという情報」がローカルマシンに取り込まれただけで、更新内容そのものは取り込まれていないことに注意してください。続いて実験用リポジトリの更新内容をローカルマシンのファイルに取り込むために、以下のコマンドを実行してください。
|
|
|
|
|
|
```bash
|
|
|
$ git merge upstream/master
|
|
|
```
|
|
|
|
|
|
うまく行けば、更新されたファイルと行数が表示されます。
|
|
|
|
|
|
もし、実験用リポジトリの更新内容がローカルマシンで加えた変更と競合している場合は、その旨が表示されます。この場合は、該当のファイルを開いて競合部分を編集してから
|
|
|
|
|
|
```bash
|
|
|
$ git commit -m "コメント"
|
|
|
```
|
|
|
|
|
|
を実行してください。
|
|
|
|
|
|
## 参考になるウェブサイト
|
|
|
|
|
|
* [Git/gitlabで共同作業をするための最小限の知識](https://doss.eidos.ic.i.u-tokyo.ac.jp/html/git.html)
|
|
|
|
|
|
「大規模ソフトウェアを手探る」実験では git を用いて複数人開発をしているようですが、その実験のウェブページであり、非常にわかりやすいです。
|
|
|
この実験では複数人実験を行うわけではないので、上述した三つのコマンドさえ使えれば十分ですが、もう少し進んだ git の使い方を理解するのに役立つでしょう。
|
|
|
この実験では複数人実験を行うわけではないので、上述したコマンドさえ使えれば十分ですが、もう少し進んだ git の使い方を理解するのに役立つでしょう。
|
|
|
|
|
|
* [Explain Git with D3](https://lpha-z.github.io/explain-git-with-d3/)
|
|
|
|
... | ... | |