Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はじめてのGit

 はじめてのGit

Git を使ったことがない方を対象とした内容です。
Git のツールに SourceTree を、リモートリポジトリは AWS の Codecommit を使用します。

Avatar for higashi

higashi

July 02, 2020
Tweet

More Decks by higashi

Other Decks in Technology

Transcript

  1. はじめてのGit Index 本スライドはこれまで⼀度も Git を使ったことのない初⼼者の⽅を対象としています。 Git および SourceTree のインストールから基本的な使い⽅を紹介しています。 »

    バージョン管理の基本 • バージョン管理システムがない世界 • だから Git を使う • リポジトリ • ⼤まかな作業のながれ • コミットの流れ • なぜステージングにあげるのか • 作業を分岐させるブランチ機能 » 環境をつくる • SourceTree • リモートリポジトリの作成 • 開鍵の作成 • 公開鍵を登録する • ssh 設定する • ssh 接続確認してみる • リモートリポジトリからクローンする 2 » Git の基本操作 • リポジトリに変更を反映する • ファイルをもとに戻す • ブランチをつくる
  2. はじめてのGit だから Git を使う Git とはプログラムソースなどの変更履歴を管理する分散型の バージョン管理システムです。Gitを導⼊すると、いつ、誰が、ど のファイルの何⾏⽬を、どういう⽬的で作成、更新、削除した か分かるようになります。 Git

    でできること » いつ、誰が、どのファイルの何⾏⽬を、どういう⽬的で作成、更新、 削除したか分かる » コードの共有 » コミット単位で以前のバージョンに戻せる » 他⼈にコードの意図を伝えやすい » レビューを強く機能させる仕組みがある(プルリクエスト) 5
  3. はじめてのGit ⼤まかな作業のながれ リモートリポジトリから最新の情報をダウンロード し、ファイルを 更新したあと、ローカルリポジトリに記録して、リモートリポジトリ にアップロードする Git の作業の流れ » 最新のファイルをリモートリポジトリからダウンロード

    (pull) » ファイルを更新して保存 » 作業単位でファイルをステージエリアに追加 (add) » ⾃PCのローカルリポジトリにファイルを登録 ( commit ) » リモートリポジトリへアップ (push) 7 1. リモートリポジトリから pull 2. リモートリポジトリへ push
  4. はじめてのGit バージョン管理の基本 – まとめ リポジトリとは » ファイルの状態を管理するデータベースのようなもの » ローカルリポジトリとリモートリポジトリがある »

    ローカルリポジトリは⾃PCにつくるリポジトリ » リモートリポジトリは GitHub や Codecommit などのサーバ環境にあるリポジトリ 12 作業の流れ » 最新のファイルを pull し編集する » 編集したファイルをローカルリポジトリに作業単位でステージに add する » ステージにあるファイルをローカルリポジトリに commit する » リモートリポジトリに push する
  5. はじめてのGit SourceTree SourceTree( ソースツリー ) とは Git の操作を GUI で⾏

    えるようにした Git クライアントツールです。 ダウンロード: https://www.sourcetreeapp.com/ 14
  6. はじめてのGit リモートリポジトリの作成 今回は AWS の codecommit をリモートリポジトリとして使 います。 AWS コンソールにログインし

    codecommit メニューを開きま す。画⾯左にある「リポジトリを作成」をクリックしてください。 15 リポジトリ名を⼊⼒して「作成」をクリックします。
  7. はじめてのGit 開鍵の作成 codecommit との通信は ssh を使⽤します。ssh ⽤の鍵 を作成します。 鍵名は任意です。右の例では、codecommit_rsa.pub を

    作成しました。 16 ~/.ssh ❯ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/oreore/.ssh/id_rsa): codecommit_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in codecommit_rsa. Your public key has been saved in codecommit_rsa.pub. The key fingerprint is: SHA256:16eWSYpcZC/eWPQipzC61vfWX+vE4FKy2ENzrEf0gl4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | | | | | o .. | | o ++.. | | S ==BEo. | | o B=@@*+ | | ..o.=B*+ o.| | ... ..= o o| | .. . o. .+.| +----[SHA256]-----+
  8. はじめてのGit ssh 設定する 作成した秘密鍵をもとに codecommit に ssh できるように 設定します。 ~/.ssh/config

    に接続情報を記載します。 18 Host git-codecommit.*.amazonaws.com User ABCDEFGHIJKLMNOPQRST IdentityFile ~/.ssh/codecommit_rsa User には「 SSH キー ID 」を記載します
  9. はじめてのGit ssh 接続確認してみる codecommit に ssh 接続確認をします。「 You have successfully

    」と出たら成功です。 19 ❯ ssh git-codecommit.us-east-2.amazonaws.com You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us- east-2.amazonaws.com closed by remote host. Connection to git-codecommit.us-east-2.amazonaws.com closed.
  10. はじめてのGit リモートリポジトリからクローンする SourceTree を使いリモートリポジトリに接続し、リモートリポ ジトリをクローンしローカルリポジトリとして使います。 20 先ほど作成したリポジトリの SSH をコピーしておきます。 SourceTree

    を起動し [ URL からクローン ] を選択し、 [ リポジトリをクローン ] ダイアログを表⽰させます。 先程コピーした SSH の値を [ ソース URL] にペーストします。 [ 保存先のパス ] にローカルリポジトリのパスを、[ 名前 ] に ローカルリポジトリ名を⼊⼒します。 ローカルリポジトリ名はリモートリポジトリ名と同じにするのが⼀ 般的です。 最後にクローンをクリックしてください。
  11. はじめてのGit Git の基本操作 リポジトリに変更を反映する » リモートリポジトリから pull する » ローカルリポジトリでファイルを編集する

    » コミットするファイルをステージに add する » ファイルをローカルリポジトリに commit する » commit 内容を確認する » リモートリポジトリに push する 23 ファイルをもとに戻す » ファイルを削除したことを commit する » commit を戻す ブランチをつくる » taskA と taskB の2つのブランチを作る » taskA で作業を中断しスタッシュする » taskB で作業しコミットする » taskA に戻り作業の続きをしコミットする » taskB を master にマージする » master に統合
  12. はじめてのGit リモートリポジトリから pull する 25 リモートリポジトリからローカルリポジトリへ最新のファイルをダウン ロードすることを pull と⾔います。 ひとりで作業している場合でも、作業前には必ず

    pull する癖 をつけましょう。 ※ リモートリポジトリを作成したばかりの場合、空のリポジトリなので、 ブランチが存在しません。よって、まだ pull ができません。
  13. はじめてのGit ファイルをローカルリポジトリに commit する 28 画⾯左上の [ コミット ] をクリックすると、画⾯下にコミットメッ

    セージ⼊⼒するテキストボックスがでます。 作業内容が理解しやすいコミットメッセージを⼊⼒し、 画⾯右 下の [ コミット ] ボタンを押します。
  14. はじめてのGit リモートリポジトリに push する 30 ローカルリポジトリの内容をリモートリポジトリに反映します。 画⾯上部のメニューバーの [ プッシュ ]

    をクリックします。プッ シュするブランチにチェックを⼊れ [ OK ] ボタンをクリックします。 CodeCommit にもファイルが登録されコミットログも記録され ています。[ コミット ID ] をクリックすると詳細が表⽰されます。
  15. はじめてのGit ファイルを削除したことを commit する 32 ファイルを削除したことも記録に残されます。 先程作成した test.txt を削除します。追加で test2.txt

    ファイルを作成します。 ❯ rm test.txt remove test.txt? y ❯ cat test2.txt This is test2 file. SourceTree には [ ステージに未登録のファイル ] として、test.txt と test2.txt が表⽰されます。 ステージングに追加し commit します。
  16. はじめてのGit commit を戻す 33 先程 commit した記録をなかったことにし、削除してしまった ファイルを復活させます。 戻したい commit

    履歴まで戻すことで削除したファイルを復 活させる事ができます。 メニューから [ 履歴 ] を選択し、戻したい commit にカーソ ルを合わせ右クリックします。 表⽰されるメニューから [ master をこのコミットまで戻す ] を 選択肢実⾏します。 test.txt が復活し、test2.txt は作成されなかったことになり ました。
  17. はじめてのGit taskA と taskB の2つのブランチを作る 35 タスク A の作業中に緊急でタスク B

    やらないといけなくなった 場合を想定してブランチで作業をわけて進めてみます。 master ブランチから taskA のブランチを分岐させます。メ ニューバーの [ ブランチ ] をクリックし、新規ブランチに [ taskA ] と⼊⼒し [ ブランチを作成 ]をクリックします。 続けて taskB ブランチをつくりますが、必ず master ブランチ にブランチを切り替えて ( チェックアウト ) してから作成します。
  18. はじめてのGit taskA で作業を中断しスタッシュする 36 taskA ブランチに移動して taskA.txt ファイルを作成します。 画⾯左のメニューより [

    ブランチ ] を選択し、ブランチを表⽰させます。 ブランチの中から taskA を選択し右クリックします。 表⽰されるメニューの中から [ taskA をチェックアウト ] を選択し、 taskA ブランチに移動します。 ローカルリポジトリで taskA.txt ファイルを作成します。 taskA の作業は途中ですが、 taskB のブランチに移動して、タスクB の作業を進めることにします。 taskB のブランチに移動する前に、taskA.txt をスタッシュします。 スタッシュとは、作業がまだ中途半端な状態でコミットが⾏いたくない ケースで⼀時的に作業状態を保管していおくための機能です。
  19. はじめてのGit taskB で作業しコミットする 37 taskB ブランチに移動して taskB.txt ファイルを作成します。 画⾯左のメニューより [

    ブランチ ] を選択し、ブランチを表⽰さ せます。ブランチの中から taskB を選択し右クリックします。 表⽰されるメニューの中から [ taskB をチェックアウト ] を選 択し、 taskB ブランチに移動します。 ローカルリポジトリで taskB.txt ファイルを作成します。 作成後、SourceTree にもどりコミットします。 taskB の作業が完了したら taskA にチェックアウトして、タス クA の続きにもどります。
  20. はじめてのGit taskB taskA を master にマージする 39 taskB ブランチの作業内容を master

    ブランチに取り込みま す。( マージ ) master ブランチに移動して、メニューバーの [ マージ ] をク リックします。 taskB のコミットログを選択した状態で [ OK ] をクリックしま す。 同じ要領で taskA ブランチも master ブランチへマージする。
  21. はじめてのGit master に統合 40 結果、master ブランチに taskA ブランチで作成した taskA.txt と

    taskB ブランチで作成した taskB.txt が統合されました。 ❯ ls taskA.txt taskB.txt test.txt