Skip to content

Latest commit

 

History

History
271 lines (173 loc) · 7.57 KB

index.md

File metadata and controls

271 lines (173 loc) · 7.57 KB

社内Git勉強会

勉強会のゴール

  • 基本的なgitの操作に慣れる
  • 実際に文言修正pull requestを投げられるようにする

TODO: 井上くんに「なんすか?めんどくさいっす自分で直してください」って言われなくなるみたいないらすと屋の画像を作る

対象者

  • ソフトウェア開発のPM
  • 駆け出しエンジニア

必要なもの

コマンドラインでやりたい人は terminalgit を入れてください。

今一番ポピュラーなテキストエディタは vim VSCode なので入れとけばいいと思います。

他のGitクライアント使っても同じことができます。

今回はVSCodeのGitの機能を使おうと思います。

そもそもGitってなんなの?

難しく言うと、分散型レポジトリシステム。

簡単に言うと、複数人でできるバージョン管理システム。

抑えとくべき用語/コマンド

最低限これさえあればなんとかなる。

用語

  1. リモートレポジトリ ... GitHubなどオンライン上に中央集権的にコードや変更履歴を貯めるところ
  2. ローカルレポジトリ ... 自分のPC上でコードや変更履歴をためているところ
  3. ブランチ ... 個人の作業やリリースを分割するために独立させたコードの集合。ブランチ同士は(基本的に)関連している。
  4. チェックアウト ... ブランチの切り替え操作のこと

基本

  1. git clone ... レポジトリをローカルにダウンロードしてくる
  2. git status ... 自分が変更したファイルが見れる
  3. git add ... 自分が変更したファイルを
  4. git commit ... add で選択したファイルにコメントを付けて保存
  5. git push ... ローカルにある最新の情報をGitHubにアップロードする
  6. git pull ... GitHub上にあるレポジトリの最新の情報を取ってくる

ブランチ操作

  1. git branch ... ブランチの操作をする
  2. git checkout ... ブランチを切り替える

gitコマンドを入れて、ssh keyをGitHubに登録する

コマンドの導入

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install git
$ git --version
git version 2.25.0

ssh keyを作成する

~/.ssh = ssh関連のファイルを入れるディレクトリ ないかもしれないのでmkdirコマンドで作成する

$ mkdir ~/.ssh
$ cd ~/.ssh

ssh_keygen = ssh keyを生成するコマンド tomimori_sとかtomimori_s@uuum.jpは自分のものに変更

$ ssh-keygen -t rsa -b 4096 -C "tomimori_s@uuum.jp" -f tomimori_s

コマンドを叩いた後にパスフレーズを2回聞かれるので入力します(画面には入力している内容は出ない) パスフレーズは空でもOK

$ ls -la
-rw-------   1 tousa_k  staff  3381  2  7 11:47 tomimori_s
-rw-r--r--   1 tousa_k  staff   744  2  7 11:47 tomimori_s.pub

ssh-keygenコマンドを叩いた直後。パスフレーズ1回目を聞かれる。

ssh_keygen1.png

もう一度同じパスフレーズを入力。

ssh_keygen2.png

ssh keyが作られたところ。

ssh_keygen3.png

lsコマンドで中身を確認してtomimori_stomimori_s.pubができていればOK

ssh_keygen4.png

作成したssh keyをGitHubに登録する

GitHub右上のメニューからSettingsを選択

add_key_to_github_1.png

SSH and GPG keysを選択

add_key_to_github_2.png

New SSH Keyを選択

add_key_to_github_3.png

ここで一度ターミナルに戻って、コマンドを叩く。 ※tomimori_sではなく、tomimori_s.pubであることに注意

$ cat ~/.ssh/tomimori_s.pub | pbcopy

add_key_to_github_4.png

GitHubに戻って貼り付けてからAdd SSH KEYをクリック。タイトルは空でもOK。

add_key_to_github_5.png

元の画面に戻って、画像のように追加されていればOK。

add_key_to_github_6.png

GitHubと通信できるか確認する

ssh通信する設定を書いたconfigファイルを落としてくる

$ curl https://raw.githubusercontent.com/UUUM/git-study/master/config.sample > ~/.ssh/config

自分が作ったssh keyの名前でファイルの中身を置換する(okubo_mが自分のものになる)

$ sed -i -e 's/tomimori_s/okubo_m/' ~/.ssh/config

sshコマンドでGitHubにつなげられるかチェックする パスフレーズを聞かれるのでssh keyを作ったときと同じものを入れる。

$ ssh -T github.com
Enter passphrase for key '/Users/XXX/.ssh/okubo_m':
Hi MozyOk! You've successfully authenticated, but GitHub does not provide shell access.

まずはレポジトリをcloneする

このレポジトリ をクローンする

$ cd ~/Desktop
$ git clone git@github.com:UUUM/git-study.git
$ cd git-study

VSCodeでクローンした UUUM/git-study を開いてみる。

issueを立ててみる

url: https://github.com/UUUM/git-study/issues

先に立ててみた

issue.png

branchを切ってみる

VSCodeの場合

branch_1.png

branch_2.png

コマンドラインでやる場合

# 01.mdを更新したい場合
$ git branch
* master
$ git checkout -b feature/update-01_md
Switched to a new branch 'feature/update-01_md'
$ git br
* feature/update-01_md
  master

作業をする

issueで割り当てられたファイルを適当に編集してみる。

commitしてpushをする

VSCodeの場合

commit.png

コマンドラインでやる場合

01.md のファイルを編集した場合こういう表示になる

$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   01.md

no changes added to commit (use "git add" and/or "git commit -a")


$ git add 01.md
$ git commit -m "ここにコミットメッセージを書く"
$ git push origin HEAD

pull requestを作り、mergeしてみる

./img/pull_request_1.png

./img/pull_request_2.png

./img/pull_request_3.png

./img/pull_request_4.png

masterを最新にする

VSCodeの場合

./img/pull_1.png

./img/pull_2.png

コマンドラインでやるなら

$ git branch
* feature/add-01
  master
$ git checkout maser
$ git pull

参考記事