Skip to content

Instantly share code, notes, and snippets.

@skanehira
Last active November 13, 2020 16:12
Show Gist options
  • Save skanehira/6a9c8fdc7801de00bfcf6e68e2ab4220 to your computer and use it in GitHub Desktop.
Save skanehira/6a9c8fdc7801de00bfcf6e68e2ab4220 to your computer and use it in GitHub Desktop.

Git&GitHubビギナー入門

対象者

  • GitとGitHubを知らない
  • 言葉だけ聞いたことがある

ゴール

  • GitとGitHubとはなにかを知る
  • 使い方を知る

Gitとは

  • バージョン管理ツール
  • ファイルの変更履歴を管理できる
    • いつ、だれが、なにを、どんなふうに変更したのかがわかる
    • 自他の変更したコードを簡単に共有できる
  • 現代の開発シーンにおいて必須なツール
    • Gitを使うのが当たり前、むしろGitを使えない開発に困る
    • プログラマーとして必須のスキルといっても過言ではない

Gitの仕組みと大まかな使い方

バージョン管理システム入門 より

  • ファイルを格納する場所を リポジトリ と呼ぶ
  • 一般的にリポジトリと言ったらソースコードが保存されているんだなと考えておけば良い
  • 共有リポジトリという大本があって、そこにデータが保存されている
  • 作業者は自分のPCに共有リポジトリを clone して作業する
  • ファイルを編集して変更を commit で記録する
  • 記録した変更を共有リポジトリに push して更新する

Gitを使うメリット

  • 複数人で簡単にファイルの変更を共有できる
    例) Aさんの修正した内容を最低2つのコマンドを打つだけで自分のファイルに反映できる

    $ git fetch origin master
    $ git rebase origin/master
  • コミット(記録)した時の差分がわかる(いつ、誰が、なにを、どのように変更したのか)

    commit 51d2e0539a034dab1f43650efa8b68284a937eac
    Author: skanehira <sho19921005@gmail.com> <------------------------- だれが
    Date:   Mon Sep 7 17:17:58 2020 +0900 <----------------------------- いつ
    
        add GhPulls
    
    diff --git a/autoload/gh/gh.vim b/autoload/gh/gh.vim <-------------- 何を
    index 1be285b..1138859 100644
    --- a/autoload/gh/gh.vim
    +++ b/autoload/gh/gh.vim
    @@ -70,6 +70,11 @@ function! s:pull_diff() abort <------------------ どのように
             \.catch(function('gh#error'))                                   |
     endfunction                                                             |
                                                                             |
    +function! gh#gh#pulls(arg) abort                                        |
    +  let args = split(a:arg, '/')                                          |
    +  call execute(printf('new gh://%s/%s/pulls', args[0], args[1]))        |
    +endfunction                                                             |
    +                                                                        |
     augroup gh-pulls                                                        |
       au!                                                                   |
       au BufReadCmd gh://*/*/pulls call s:pull_list()                       |
    diff --git a/plugin/gh.vim b/plugin/gh.vim                               |
    new file mode 100644                                                     |
    index 0000000..7f83baa                                                   |
    --- /dev/null                                                            |
    +++ b/plugin/gh.vim                                                      |
    @@ -0,0 +1,10 @@                                                         |
    +" gh                                                                    |
    +" Author: skanehira                                                     |
    +" License: MIT                                                          |
    +                                                                        |
    +if exists('loaded_gh')                                                  |
    +  finish                                                                |
    +endif                                                                   |
    +let g:loaded_gh = 1                                                     |
    +                                                                        |
    +command! -nargs=1 GhPulls call gh#gh#pulls(<f-args>) -------------------+
    
  • 特定のコミットの状態に戻すことができる
    例) バグが発生していない時の状態に1コマンドで戻せる

    # 51d2e05 からの変更を取り消す
    git reset 51d2e05

Gitの用語

実際これからGitの基本操作を勉強する見る前に、まずいくつかの用語について説明をする

用語 説明
repository(リポジトリ) データの貯蓄庫
remote repository(リモート リポジトリ) リモートにある貯蓄庫
branch(ブランチ) 履歴を記録するもの(詳細は後述)
add(アド) インデックスに追加(詳細は後述)
commit(コミット) 現在の変更を記録
  • ブランチについて
    リポジトリを作成した時点でmasterというブランチが作られる
    このブランチというのは履歴を記録して貯めるもの ブランチをたくさん作ることができ、それぞれのブランチは他のブランチの変更の影響を受けない
    木の枝が生えていくが生えていくイメージ(branchは枝という意味)

    サル先生のGit入門より

  • コミットまでの流れについて
    コミットまでに2ステップがある
    変更したファイルをaddしてインデックスに追加
    インデックスに追加されたものをコミットして記録を残す

    バージョン管理システム入門より

repository(データの貯蓄庫)は複数のbranch(記録を貯める場所)を持つことができ、
1つのbranchで複数のコミット(記録)を持つことができる

Gitとは?仕組みを初心者にもわかりやすく解説より

Gitの導入

こちらを参照

インストール後、コミットした人がわかるように、 Gitのユーザ名とメールアドレスを設定する必要がある

$ git config --global user.name "skanehira"
$ git config --global user.email "sho19921005@gmail.com"

Gitの基本操作

コマンド 説明
git init 今のディレクトリをリポジトリにする
git status 今のブランチの状態
git add インデックスに追加
git commit 変更を記録
git diff 変更の差分を確認
git reset 特定の変更まで戻す
git log 変更履歴
git switch/checkout ブランチの作成と切り替え

GitHubとは

共有リポジトリを管理してくれる便利なサービス
世界中の多くのOSSがGitHubで公開されている

準備

こちらを参照して、アカウント作成とSSHキーの設定を行う

リポジトリ作成

こちらを参照してリポジトリを作成

リポジトリを操作してみよう

作ったリポジトリにファイルを追加する

git clone
git add
git commit
git push

参考文献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment