Git
wiki
多分一番これがいい
git fetch
git rebase origin/master topic
git push origin topic --force-with-lease
--force-with-leaseとは PUSHの際、ローカルrefとリモートrefを比較しローカルが最新か判定し、最新でな ければPUSHが失敗するというもの。 ※ただし、直前にfetchしているとPUSHが成功してしまうので注意
git reset (git commitを取り消す)
- リモートにpushしていないコミットを取り消す際に使用する。
- 取り消した。というログが残れないため便利。しかしそれでpushしてしまっていたら生合成が取れなくなる。
やること
mergeしてしまい。そこから抜き出したブランチを作る方法
GitHubにpushしてしまった場合に取り消す方法
Git Flowに関して
2種類あるけど片方忘れた
Git default動作
Gitではファイル名の大文字/小文字の変更を検知しない。
プルリク
経験談 大きすぎるのもレビュワーに疲れが出るため粒度低くてもいい
プルリク開発フロー
種類あるのかよって感じ Work in Progressパターン
プルリク レビュー側
issue
issue直訳すると、〔議論すべき〕重要な話題[問題]、問題点、論点、争点、〔問題の〕核心、急所などの意味になる。
トピックブランチ
トピックブランチとは機能追加やバグ修正といったある課題に関する作業を行うために作成するブランチ 複数の課題に関する作業を同時に行う時は、その数だけトピックブランチが作成される。 トピックブランチは安定した統合ブランチから分岐する形で作成し、作業が完了したら統合ブランチに取り込む
HEADとは
今自分が作業している場所を示すポインター HEADはGitで現在のスナップショットを参照するために使用される。
detached HEADとは
HEADがBranchを指していない状態のこと
checkout
git checkoutは、ファイル・コミット・ブランチの3つの異なるエンティティに対して実行される。
.gitattributes ファイルとは
Gitで管理するファイルの改行コードの扱いをルール化する必要がある。
-
example
そもそもなぜルールが必要なのでしょうか。以下の例で考えます。A さんは Linux マシンでコーディングしており、LF で改行されたソースコードのファイル X を Git にコミットしました。一方、B さんは Windows マシンでコーディングしています。今、A さんが書いたコードを編集したいとします。Git からファイル X をチェックアウトして編集するわけですが、このとき、B さんが使っているエディタはファイル X の改行コードを CRLF に変換してしまいました。B さんはそれに気づかずコードを編集し、保存し、コミットしました。B さんはファイル X の中の数 行だけを編集したつもりなのに、改行コードが変わったために、全行に差分が生じてしまいました。これではコードレビューもしにくいし、後日、git blame コマンドを使っても望む結果は得られないでしょう。このようなケースを考えると、「改行コードは各自適当でオッケー」とはいかないでしょう。
-
.gitattributesを使ってGitリポジトリ毎にルールを定める
gitattributes という名前のテキストファイルを作り、そこに text 属性に関する設定を書いてコミットすればその Git リポジトリを使う人全員で改行コードの扱いを統一できる。
-
.gitattributesを導入する際の指針 ファイルの拡張子に応じて変換するかどうかを定め、一部の拡張子についてはCRLF かLFかも固定するといった使い方が基本のよう。
Git にコミットするときにはいずれにせよ LF に統一します このことから、原則として Git では LF で管理することを良しとしているのかなとも考えられます。ネット上でよく「基本、LF が良いらしい」といった記事を目にしますが、その根拠のひとつがこれかもしれません。
Gist
GitHubが提供するファイル管理サービス GitHubはプロジェクト(ディレクトリ)を管理するものだが、Gistはファイル単体を管理する。
Cacher(キャッシャー)
旧サービス名GistBox。コードスニペット管理ツールです。 100以上の言語をサポートし、Gistとの連携、チーム共有などの機能があります。 メーラーのようなUIやラベル、言語別での管理、検索ができます。 Webアプリケーションの他にデスクトップアプリがあります。
GitHub pagesとは
GitHub PagesはGitHubが提供する静的なウェブページをホスティングするサービスで、ウェブページをインターネット上に公開できる。 ※DBを用いるような動的なウェブページは公開できない。 ※プライベートリポジトリであっても、GitHub Pagesはインターネット上で公開されるため注意が必要。
- 公開手順 下記の流れでWebページを公開していく。
GitHub Pages用のリポジトリの作成、ウェブページの作成GitHubへプッシュ、GitHub Pagesへアクセスして確認
- GitHub Pages種類 GitHub Pagesには大きく分けて2つの種類がある。 ユーザのウェブページを公開するユーザサイト(User site)とプロジェクトのウェブページを公開するプロジェクトサイト。
ユーザサイト用リポジトリの作成
- 上記URL参照する。
プロジェクトサイト用リポジトリの作成
- 上記URL参照する。
-
特定のプロジェクトで専用のブランチを切る
$ git ch -b gh-pages
-
gitbook buildで静的ファイルを出力する。
-
_book内のファイルをすべてルートディレクトリにコピーする。 ディレクトリ構成は以下の通り
$ tree
.
├── architecture
│ ├── directory.html
│ └── index.html
├── docs
│ ├── README.md
│ ├── SUMMARY.md
│ ├── _book
│ │ ├── architecture
│ │ │ ├── directory.html
│ │ │ └── index.html
│ │ ├── gitbook
│ │ │ ├── fonts
│ │ │ │ └── fontawesome
│ │ │ │ ├── FontAwesome.otf
│ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ ├── fontawesome-webfont.svg
│ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ └── fontawesome-webfont.woff2
│ │ │ ├── gitbook-plugin-fontsettings
│ │ │ │ ├── fontsettings.js
│ │ │ │ └── website.css
│ │ │ ├── gitbook-plugin-highlight
│ │ │ │ ├── ebook.css
│ │ │ │ └── website.css
│ │ │ ├── gitbook-plugin-lunr
│ │ │ │ ├── lunr.min.js
│ │ │ │ └── search-lunr.js
│ │ │ ├── gitbook-plugin-search
│ │ │ │ ├── lunr.min.js
│ │ │ │ ├── search-engine.js
│ │ │ │ ├── search.css
│ │ │ │ └── search.js
│ │ │ ├── gitbook-plugin-sharing
│ │ │ │ └── buttons.js
│ │ │ ├── gitbook.js
│ │ │ ├── images
│ │ │ │ ├── apple-touch-icon-precomposed-152.png
│ │ │ │ └── favicon.ico
│ │ │ ├── style.css
│ │ │ └── theme.js
│ │ ├── index.html
│ │ └── search_index.json
│ └── architecture
│ ├── README.md
│ └── directory.md
├── gitbook
│ ├── fonts
│ │ └── fontawesome
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ ├── gitbook-plugin-fontsettings
│ │ ├── fontsettings.js
│ │ └── website.css
│ ├── gitbook-plugin-highlight
│ │ ├── ebook.css
│ │ └── website.css
│ ├── gitbook-plugin-lunr
│ │ ├── lunr.min.js
│ │ └── search-lunr.js
│ ├── gitbook-plugin-search
│ │ ├── lunr.min.js
│ │ ├── search-engine.js
│ │ ├── search.css
│ │ └── search.js
│ ├── gitbook-plugin-sharing
│ │ └── buttons.js
│ ├── gitbook.js
│ ├── images
│ │ ├── apple-touch-icon-precomposed-152.png
│ │ └── favicon.ico
│ ├── style.css
│ └── theme.js
├── index.html
└── search_index.json