GitHub †
OSSへの貢献 Issue/PullRequestの作り方 †
PRやIssueからファイルへのリンク †
Code Scanning: コードの脆弱性とエラーを自動的にスキャン †
- コードの脆弱性とエラーを自動的にスキャンする - GitHub Docs
- コードをスキャンして、脆弱性やエラーが見つかると、Pull Requestで修正を提案してくれる
- CodeQLエンジンに対応した言語: C, C++, C#, Java, JavaScript, TypeScript, Python, Go
- public repoは無料
- private repoはEnterpriseプランのGitHub Advanced Security機能を購入する
有効化手順:
SubvesionからGitHubへ移行 †
- 環境
- OS: CentOS 7
- git version 1.8.3.1
localにある「file:///var/www/svn/dev/」をgithub private repoへ移行する:
- 空のgit repoを作成
mkdir -p git-svn/dev/
cd git-svn/dev/
# svnのrevを確認
svn info file:///var/www/svn/dev/
- git repoの初期化: .git/config に保存される。
- 一般的なsvn: 以下のように branches, tags, trunkがある場合
svn ls file:///var/www/svn/repo/
branches/
tags/
trunk/
git svn init -s --prefix=svn/ --no-minimize-url file:///var/www/svn/dev/
- trunk等が無く、直接ファイルが置いてある場合。「--trunk=/」を追加する
svn ls file:///var/www/svn/repo/
dir1
dir2
...
git svn init -s --prefix=svn/ --no-minimize-url --trunk=/ file:///var/www/svn/dev/
- svn repoからgit repoへfetchする
git svn fetch
- GitHubは1ファイル50MBで警告、100MBでブロックされる制限がある。gitはsvnと違い、部分チェックアウトできないのでバイナリファイルは削除して、軽量化したほうが良い。
- svnのブランチ/タグをgitへ変換したい場合
- remoteへpush
git remote add origin git@github.com:<user>/<repo>.git
git branch -M master
git push -u origin master
GitHub pages: GitHub リポジトリでwebサイトを公開 †
fork元リポジトリと同期 †
- upstream が登録されているか確認。ここではoriginしかかった
git remote -v
origin git@github.com:<YOUR_USER>/<REPO>.git (fetch)
origin git@github.com:<YOUR_USER>/<REPO>.git (push)
- fork元を upstream として登録
git remote add upstream https://github.com/<ORIGINAL_USER>/<REPO>.git
- upstreamを最新に更新
git fetch upstream
- 自分のリポジトリに変更を取り込む
git checkout master
git pull -p
git merge upstream/master
- 変更点を確認して、自分のリポジトリにpush
git diff origin/master
git push origin master
act: GitHub Actionsをローカル実行 †
※GitHub actionsに「workflow_dispatch」が追加されたので、手動でのテストはできるようになった
self-hosted runner: Actionsを実行する独自ホスト †
private githubのReleasesからファイルをダウンロードする †
Advanced search †
リポジトリの移譲 †
ガイドライン †
ToC: 目次の自動生成 †
Packages: パッケージの公開 †
CLI: †
Draft Pull Request †
PRを作る時に選択できるようになった。
- 未完成でもPRを共有したい。
- Draft PRはmergeボタンが無い。
- 完成後、「Ready for review」ボタンで普通のPRに変更できる。
PRをDraftへ戻す。
PR中にフィードバックを取り込む †
PRのレビュー中に、数行の変更を提案したい場合に便利。
Organization: 企業や組織単位でリポジトリを管理 †
Insights: リポジトリ/Organizationの分析/可視化 †
- 分析/グラフの機能がある
- Pulse:
- 期間内で誰のコミットが多いか?
- PR, Issueの数等
README.md の書き方 †
CHANGELOG.md の書き方 †
project/スケジュール管理 †
無料アカウントは1個人1つ †
GitHubの規約的には。
複数アカウントのマージ †
WebHook等で許可すべきIP †
IP制限をしている場合、GitHubのIPを許可する必要がある。
Actions: ワークフローの自動化とカスタマイズ †
GitHub markdownで使える言語 †
```言語の名前 or aliases
コード
```
GitHub上で、ブランチ、コミットIDの比較 †
GitHub上で、ブランチ、コミットID間の比較ができる。
レビューする人の負担が減る。
GUIの場合:
- 2019-06-27時点で、GUIからbranchは選択できる。tagは選択できないので、URL欄に直接入力。
- セレクトボックスから、デフォルト以外のbranchを選択
- Cloneボタンの下に、「Compare」リンクが表示されるのでクリック
- 比較したいbranchを選択
URLから直接入力する場合:
- URL:
https://github.com/example/example/compare/<commit-id , branch , tag>...<commit-id , branch , tag>
GitHubを使った開発フロー †
Issue/PR Template †
二段階認証 †
- 二段階認証後
- 初回(IPアドレス等?)ブラウザログイン時に、ワンタイムパスワードを入力する
- clone時に、https://だとIDとアクセストークンをGitHub上で取得し、入力する必要がある。SSHの方が便利
一時的にユーザ名の変更 †
GitHub for WindowsでBitBucketを使う †
GitHubはデフォルトで正しい秘密鍵が指定されるようだが、BitBucketでは秘密鍵を明示的に指定する必要があった
- https://bitbucket.org/ のアカウントの管理 > SSHキーにGitHub for Windowsで使用している公開鍵を追加
- %USERPROFILE%\.ssh\github_rsa.pub
- Git Shellを開き以下のようにする
vim ~/.ssh/config
----
Host bitbucket.org
User git
Port 22
HostName bitbucket.org
IdentityFile ~/.ssh/github_rsa
TCPKeepAlive yes
IdentitiesOnly yes
----
GitHubに登録した公開鍵は世界に公開される †
よく使うリンク †
Markdown記法 †
webhook: push後、指定サーバに通知を送信、サーバ上で自動更新 †
接続に使うユーザの確認 †
ssh -T git@github.com
Hi <UserName> ...
ERROR: Repository not found. †
Issue †
- Problem : 解決されるべき事
- Issue : 議論されるべき事
githubのpull request †
変更点を含んだブランチを元リポジトリに取り込んで貰うようにリクエストを投げる事
- 該当ブランチを選択
- Compare & pull Request ボタン
- @名前で該当の人を記入
- Changesetで変更点を確認
- Merge pull request
- Confirm merge
- Delete branch
リポジトリ毎に別のgithubアカウントを使う †
使い方 †
- https://github.com/signup/free 無料アカウントの作成
- 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"
- githubにログインした状態で右上のAccount Settingsを選択し、SSH Keys > Add SSH Keyに「~/.ssh/id_rsa.pub」の内容をコピペ
- 右上のCreate New Repoで新しいリポジトリ(例:example)を作成
- ローカルに新規リポジトリを作成する場合
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