Git

5. ブランチの作成とマージ(プルリクエストの許可)

ブランチ(branch)の作成

通常、左下の GIt アイコンの横の文字が「main」となっています。ここをクリックするとコマンドパレットが起動します。

コマンドパレットで「+新しいブランチの作成」を選択し上の窓にブランチ名を入力すると新しい分岐のブランチが作成され、「main」だったところが作成したブランチ名に変わります。

 

ブランチを作成後に、ソース管理上に「ブランチを発行」というボタンが出現しますので。

作成したブランチでの作業が終わったら「Branch の発行」ボタンを押します。

プルリクエストの許可(Github)

「Branch の発行」後にファイルを編集、リモートリポジトリ(Github)を確認すると、上のメニューの「Pull requests」の横に「1」と数字が出現し内容を確認すると「Cmpare & pull request」という緑のボタンが出現します。
これは、ブランチ発行後の「プルリクエストが来ています!」という意味なのでこれを許可するため、このボタンを押します。

引き続き「Open a pull request」の画面に切り替わります。
これはまだ統合されていないブランチがある状態であることを意味します。

ブランチの作成を許可する「Create pull request」(プルリクエストを作成します。)を押します。

まだ統合されていないブランチをmain ブランチに統合させる、「merge pull request」(プルリクエストを統合します)というボタンが出現するので、これも押します。

「Confirm merge」(マージ [main ブランチにブランチが統合]されたことを確認しました)と出てくるのでこれもこれを押すと統合が完了します。


ブランチで作業した内容は main ブランチに統合されました。

統合後のローカル(vscode)のデータを同期させる

リモートでの工程後(Github)に、ローカル(vscode)で反映させるため同期する必要があります。

まず、作業していたブランチから、main ブランチに切り替えるためブランチ名をクリックし、コマンドパレットを表示し、main ブランチを選択します。
選択すると、下の写真のような状態になっています。これはリモートでマージされた内容が、ローカル(vscode)ではまだ反映されていないことを表しています。

まだプルされていない内容である「2」という数字と「 ↓ 」ダウンロードすべき内容があることを示すアイコンが表示されるのでここをクリックします。

プルして統合して反映させたいので「OK」を選択します。
ブランチで作業していた内容が、main ブランチで反映されます。

つまり下図のように、ブランチを作成し別作業を進めていた作業を、main ブランチに統合(同期)させて反映させていきます。

あとは、上記の工程を繰り返していきます。

通常リモート(Github)のリモートリポジトリの作成した人が管理者になるので管理者が Github で行ったプルリクエストの許可とmerge を行います。

6. vs codeを使ってのブランチ・マージの手順(一人で行う場合)

ブランチ(branch)の作成

通常、左下の GIt アイコンの横の文字が「main」となっています。ここをクリックするとコマンドパレットが起動します。

コマンドパレットで「+新しいブランチの作成」を選択し上の窓にブランチ名を入力すると新しい分岐のブランチが作成され、「main」だったところが作成したブランチ名に変わります。

 

作成したブランチで作業を進めます。

マージ(merge)

ブランチを作成し別作業を進めていた作業をメイン・ブランチに統合させる。

上記の図のように、ブランチで作成した分岐を一つにまとめて同期させる工程になります。
ここではその手順を説明します。

1. チェックアウト(コマンドパレット:Git:chekout)先を指定する

ブランチで作業したものをメインブランチ(main)に反映させるためにチェックアウト先を指定します。

vscodeでコマンドパレットを出して(ctrl + shift + P)「チェックアウト先」(Git:Chekout)を選択

 

反映させる場所を指定します。

2. マージするものを選択:ブランチをマージ(コマンドパレット:Git:Marge Branch)

チェックアウト先で指定した場所に(main)、ブランチで作成した項目(branch-1)をマージさせるため、コマンドパレットで「ブランチをマージ」を選択します。

 

マージさせたい元の項目を選択します。

3. 変更した内容をメインブランチに反映させる。

そうすると、ソース管理画面上に「変更を同期」というボタンが出現します。

 

その際はメッセージ窓に他のユーザーにもわかるように変更内容を入力し、「変更を同期」ボタンを押します。(コミットしてプル及びプッシュ)

4. リモートリポジトリ(Github)を更新し確認

Githubを更新するとブランチが反映され変更前のデータもダウンロードできるようになります。

4. vs codeで Githubへアップロードする

Githubのデータを更新する手順

  1. 作成したファイルをステージングする
  2. コミットする際にメッセージを記載
  3. プッシュする

ローカル環境で作業後、Githubのデータを更新する

サイドバーを「エクスプローラ」から「ソース管理」に切り替え、データに変更を加えて、Github のデータと差分が出るとアイコンが表示される。

Step1. ステージング

変更「mdファイル」に変更を加えたので「+」ボタンを押し、
まず、ステージングをする。

Step2・3. コミット

メッセージ入力欄に作業した内容が分かるようにコメントを入力し、
コミットをするが、ボタンの横の矢印を押すと「コミットしてプッシュ」が選択できます。
プッシュをするとGithubのデータが更新されます。

Githubのプロジェクトページを確認

プッシュをした後、Githubページを更新すると、vs code で作業した内容が反映されます。

この工程を繰り返すことでデータは反映されますが、前の工程に戻ることもできます。

3. vs codeを使ってgithubに自身のリポジトリーを作成

手順

  1. githubに自身のリポジトリーを作成する
  2. Gitとgithubを連携させるために登録したユーザー名とアドレスを登録する
  3. vs codeでgithubと連携させるためローカルにクローンを作成する
  4. vs codeでクローンフォルダを開く

Githubでリポジトリーを作成する

repository name でプロジェクト名を付け保存

「Add a README file」は、内容を説明するものを記載するファイルです。
拡張子「.md」のマークダウン・ファイルの作成するかどうかでチェックを入れる。
(ポートフォリオなどを作成する場合は作成した方がいい)

 

 

vs code でクローンを作成し、Githubと紐付けする

GithubからURLをコピーする

緑色の「<> Code」ボタンを押し、URLをコピーする

vs code でローカルにクローンを作成する

vs codeでコマンドパレットを表示する

  • Windows:Ctrl + Shift + P
  • Mac:⌘ + Shift + P

「Git:クローン」を選択しGithubからコピーしたURLを貼り付け設定する。

今回は「git」というフォルダを作成し、GitHubから複製するプロジェクトファイルをそこへ複製するため「git」フォルダを選択します。

 

 

「開く」を選択するとそこに複製フォルダを作成してくれます。
「はい、作成者を信頼します」を選択します。

そうすると、Githubを複製フォルダを読み込み完了します。

 

読み込み完了!

1. Gitとその用語解説について

Gitとは

Gitとは、ファイルの変更履歴を管理するためのツールになります。

例えば、あるプロジェクトの開発に携わっているとします。そのプロジェクトのソースコードを編集する際に、誤って間違った内容を書き込んでしまったり、意図しない変更を加えてしまったりする時にGitを利用することで、過去のバージョンのソースコードに戻すことができます。
複数人で共同開発を行う際は、誰がいつどのような変更を加えたのかを明確にすることができるので多く使われます。

Gitを使ってできること

  • 古いバージョンに簡単に戻せる
  • 新旧のファイルを一元管理できる
  • 編集した履歴を複数人で共有できる
  • 複数人で修正した部分を一つに統合できる

Gitを使ったバージョン管理

Gitでは、ファイルの状態を好きなときに更新履歴として保存しておくことができます。
そのため、一度編集したファイルを過去の状態に戻したり、
編集箇所の差分を表示したりすることができます。

また、古いファイルを元に編集したファイルで、他人の編集した最新ファイルを上書きしようとすると、サーバにアップロードした時に警告が出ます。
そのため、知らず知らずのうちに他人の編集内容を上書きしてしまうといった失敗は起こりません。

Gitを理解するための基本的な用語について

リポジトリ(repository)

リポジトリとは、ファイルやディレクトリを入れて保存しておく貯蔵庫のことを言います。
Gitにおけるリポジトリは以下の2種類に分かれます。

  • リモートリポジトリ(Github)
    特定のサーバー上に設置して複数人で共有するためのリポジトリです。
  • ローカルリポジトリ(vs code内)
    ユーザーごとに配置される手元のマシンで編集できるリポジトリです。

2種類のリポジトリに分けることで、普段の作業はそれぞれのユーザーが手元のローカルリポジトリで行い、作業内容を共有するときにリモートリポジトリで公開するという使い方になります。
リモートリポジトリを介して他のユーザーの作業内容を把握することも可能です。

クローン(clone)

複数人で共有しているファイル(リモートリポジトリ)をまるごと自分のローカル環境(ローカルリポジトリ)に保存する機能になります。
ダウンロードに近いもので、ほとんどの場合Gitで最初に行う作業になります。

コミット(commit)

コミットは、ファイルやディレクトリの編集作業をローカルリポジトリに記録するために必要な操作のことです。
コミットを実行するとファイルを編集した日時を記録したファイルが生成されます。
コミットを実行するごとにファイルが生成され、時系列順にならんで格納されるので、ファイルを編集した履歴やその内容を確認することができるわけです。

プッシュ(push)

プッシュとは、ローカルリポジトリにあるファイルをリモートリポジトリに送信して保存する機能です。
いわゆるアップロードに近い感覚になります。

ブランチ(branch)

ファイルの編集履歴を分岐させて記録していく機能のことを言います。ファイル編集作業は複数のユーザーが同時に行うので、並行して同時に行われる作業を正確に管理するために、Gitにはブランチという機能が用意されています。これがGitのバージョン管理を効率的にする機能になります。

マージ(merge)

複数のブランチを一つにまとめて、完成形に近づけることをマージと呼びます。(マスターブランチに統合させます。)

プル(pull)

共有されているリモートリポジトリ(Githubデータ)に保存されているファイルの内、ローカルリポジトリ(あなたのローカル環境)に無いファイルや他のユーザーが更新したファイルのみをダウンロードする機能になります。リモートリポジトリのファイルをすべて丸ごとダウンロードするクローンに対して、ローカルリポジトリとの差分のみをダウンロードして更新するのがプルになります。

フェッチ(fetch)

複数人で作業する場合に、他の作業者がリモートリポジトリへデータの更新をしたかを確認する機能になります。
プルはローカルリポジトリの内容を更新しますが、フェッチは確認するのみになるのでデータが変更されることはありません。