Memo/git/GitHub

https://dexlab.net:443/pukiwiki/index.php?Memo/git/GitHub
 

GitHub?


GitHub?上で、ブランチ、コミットIDの比較

GitHub?上で、ブランチ、コミットID間の比較ができる。
レビューする人の負担が減る。

  • URL:
    https://github.com/example/example/compare/<commit-id OR branch>...<commit-id or branch>
  • 例1: stgディレクトリをコピーして、prodディレクトリを作成して変更。stgとprodの比較をしたい
    # 作業用ブランチ作成
    git co -b add/prod
    
    # stgからprodへコピー
    cp -R stg prod
    
    # 重要。このcommit-idが比較元になる。例: 1234abc
    git add prod
    git commit
    
    # prod/以下を変更してcommit
    git commit
    
    git push origin add/prod
    
    # stgとprodの比較用リンクで確認し、PR等に記載
    https://github.com/example/example/compare/1234abc...add/prod

GitHub?を使った開発フロー


Issue Template


二段階認証

  • 二段階認証後
    • 初回(IPアドレス等?)ブラウザログイン時に、ワンタイムパスワードを入力する
    • clone時に、https://だとIDとアクセストークンをGitHub?上で取得し、入力する必要がある。SSHの方が便利

一時的にユーザ名の変更

  • コミット時に指定
    git commit --author='User1 <user1@example.com>' -a
  • リポジトリ毎に指定( repository/.git/config)
    git config user.name "user1"
    git config user.email "user1@example.com"

GitHub? for WindowsでBitBucket?を使う

GitHub?はデフォルトで正しい秘密鍵が指定されるようだが、BitBucket?では秘密鍵を明示的に指定する必要があった

  1. https://bitbucket.org/ のアカウントの管理 > SSHキーにGitHub? for Windowsで使用している公開鍵を追加
    • %USERPROFILE%\.ssh\github_rsa.pub
  2. Git Shellを開き以下のようにする
    vim ~/.ssh/config
    ----
    Host bitbucket.org
      User git
      Port 22
      HostName bitbucket.org
      IdentityFile ~/.ssh/github_rsa
      TCPKeepAlive yes
      IdentitiesOnly yes
    ----

GitHub?に登録した公開鍵は世界に公開される

  • 以下のアドレスから誰でも取得できる
  • GitHub?のアカウント名を知っていれば、ログインしたいホストの ~/.ssh/authorized_keys に追加すればOK
  • 公開鍵末尾のスペース以降はコメントなので、判別しやすいコメントを付けると良い
    ssh-rsa AAAAB3N...YFd8w6Q== username@example.com

よく使うリンク


Markdown記法

  • Githubによって拡張されている
  • エディタ
    • https://atom.io/ α版だがWindows/MacOSX版あり。CTRL+SHIFT+Mでプレビュー

webhook: push後、指定サーバに通知を送信、サーバ上で自動更新


接続に使うユーザの確認

ssh git@github.com

Hi <UserName> ...

ERROR: Repository not found.

  • pull権限はあるが、push権限が無い場合もこのエラー

Issue

  • Problem : 解決されるべき事
  • Issue : 議論されるべき事
  • コメントに #1 等のIssue番号を入れる事で自動的にリンクしてくれる。
  • #1 fixed, #1 closed等の決められた単語をコミットメッセージに入れる事で、Issueをcloseできる
    git commi -m "#1 fixed"
    git commi -m "#1 closed"

githubのpull request

変更点を含んだブランチを元リポジトリに取り込んで貰うようにリクエストを投げる事

  • 編集する人
    • コンソールでの作業
      # 現在のbranch確認
      git branch -a
      * master
      
      # 最新のmasterに更新
      git pull
      
      # 作業用ブランチ作成とチェックアウト
      git checkout -b new-branch
      
      # 現在のbranch確認
      git branch
        master
      * new-branch
      
      # ファイルを変更、追加
      # 変更点確認
      git diff .
      
      # 問題なければコミット
      git commit .
      
      # ブランチをリモートへプッシュ
      git push origin new-branch
    • GitHub?上での作業
  1. 該当ブランチを選択
  2. Compare & pull Request ボタン
  3. @名前で該当の人を記入
  • Pull requestを受け取った人
  1. Changesetで変更点を確認
  2. Merge pull request
  3. Confirm merge
  4. Delete branch
  • 最新のマスターを取得
    git checkout master
    git pull

リポジトリ毎に別のgithubアカウントを使う

  • リポジトリ毎に別のユーザ名を使用できる。例えばuser1。global user.name, user.emailが設定されていない場合、commit, push等が出来ない
    git clone git@github.com:REPO/git-test.git
    cd REPO
    
    git config user.name "user1"
    git config user.email "user1@example.com"
    git config --list
    
    # ssh秘密鍵を適当な場所に置く
    vim ~/.ssh/github-user1_rsa
    chmod 600 ~/.ssh/github-user1_rsa
    
    # ssh configを変更し、適当なホスト名を付ける
    vim ~/.ssh/config
    ----
    Host github-user1
      User git
      Port 22
      HostName github.com
      IdentityFile ~/.ssh/github-user1_rsa
      TCPKeepAlive yes
      IdentitiesOnly yes
    ----
    
    # 接続テスト
    ssh -vT github-user1
    
    # リポジトリ中のアドレスを変更
    vim .git/config
    ----
        url = git@github-user1:REPO/git-test.git
    ----

使い方

  • README.mdのリアルタイムプレビュー
  1. https://github.com/signup/free 無料アカウントの作成
  2. Linux上での作業用にSSH公開鍵の登録。パスフレーズをありにすると毎回聞かれるので空でも良い
    ssh-keygen -t rsa -C "your_email@youremail.com"
    
    秘密鍵と公開鍵が出来るので保存しておく
    ~/.ssh/id_rsa
    ~/.ssh/id_rsa.pub
    
    コミットログに表示される名前とメールアドレスを設定。~/.gitconfig に保存される
    git config --global user.name "your_name"
    git config --global user.email "your_email@youremail.com"
  3. githubにログインした状態で右上のAccount Settingsを選択し、SSH Keys > Add SSH Keyに「~/.ssh/id_rsa.pub」の内容をコピペ
  4. 右上のCreate New Repoで新しいリポジトリ(例:example)を作成
  5. ローカルに新規リポジトリを作成する場合
    mkdir example
    cd example
    git init
    touch README
    git add README
    git commit -m 'first commit'
    # URLに'origin' という短い別名を付ける(必須ではない)
    git remote add origin git@github.com:your_name/example.git
    # git push git@github.com:your_name/example.git master:master と同じ
    git push -u origin master
    • linux上でローカルリポジトリをもってくる場合
      git clone git://github.com/your_name/example.git
      cd example
      
      # リモートの更新内容を反映
      git pull
      
      # ファイルの追加
      git add README
      
      # 全ての変更を追加
      git add .
      
      # 変更の確認
      git status
      
      # 差分の確認
      git diff [ファイル名]
      
      # 変更を元に戻す
      git revert ファイル名
      
      # 変更のコミット
      git commit -a
      
      # リモートリポジトリへ反映
      git push

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-20 (木) 17:10:42 (29d)