github-cheat-sheet - これはGitやGitHubの隠された機能やよく知られていない機能の一覧だ。

(A list of cool features of Git and GitHub.)

Created at: 2014-04-13 00:38:42
Language: NULL
License: MIT

GitHubチートシート素晴らしい

GitとGitHubのクールな隠された機能とそれほど隠されていない機能のコレクション。このチートシートは、Aloha Ruby Conference2012でのZachHolmanGitとGitHubSecretsの講演(スライド)と、WDCNZ2013での彼のMoreGitとGitHubSecretsの講演(スライド)に触発されました。

ショートリンク:

http://git.io/sheet

これを他の言語で読んでください:英語한국어日本語简体中文正體中文

目次

GitHub

空白を無視する

差分URLに追加

?w=1
すると、空白のみの変更が削除され、変更されたコードのみを表示できるようになります。

空白なしの差分

GitHubの秘密についてもっと読む。

タブスペースを調整する

差分URLまたはファイルURLに追加

?ts=4
すると、タブ文字がデフォルトの8ではなく4スペースとして表示されます。後の数字
ts
は好みに合わせて調整できます。これはGistsやrawファイルビューでは機能しませんが、Chrome拡張機能で自動化できます。

追加する前のGoソースファイルは次の

?ts=4
とおりです。

前に、タブスペースの例

...そしてこれは追加後です

?ts=4

その後、タブスペースの例

著者によるコミット履歴

作成者によるリポジトリ上のすべてのコミットを表示する

?author={user}
には、URLに追加します。

https://github.com/rails/rails/commits/master?author=dhh

DHHコミット履歴

コミットビューの違いについてもっと読む。

リポジトリのクローン作成

リポジトリのクローンを作成するとき

.git
は、最後から省略できます。

$ git clone https://github.com/tiimgreen/github-cheat-sheet

clone
Gitコマンドの詳細をご覧ください。

ブランチ

すべてのブランチを別のブランチと比較する

リポジトリの[ブランチ]ページの[コミット]ボタンの横に移動すると、次のようになります。

https://github.com/{user}/{repo}/branches

...メインブランチにマージされていないすべてのブランチのリストが表示されます。

ここから、比較ページにアクセスしたり、ボタンをクリックするだけでブランチを削除したりできます。

rails/railsリポジトリでマスターにマージされていないブランチを比較します-https://github.com/rails/rails/branches

ブランチの比較

GitHubを使用してブランチを比較するには、URLを次のように変更します。

https://github.com/{user}/{repo}/compare/{range}

どこ

{range} = master...4-1-stable

例えば:

https://github.com/rails/rails/compare/master...4-1-stable

Railsブランチの比較例

{range}
次のようなものに変更できます:

https://github.com/rails/rails/compare/[email protected]{1.day.ago}...master
https://github.com/rails/rails/compare/[email protected]{2014-10-04}...master

ここでは、日付は次の形式になっています

YYYY-MM-DD

別の比較例

ブランチは

diff
patch
ビューで比較することもできます。

https://github.com/rails/rails/compare/master...4-1-stable.diff
https://github.com/rails/rails/compare/master...4-1-stable.patch

時間の経過に伴うコミットの比較の詳細をご覧ください。

フォークされたリポジトリ間でブランチを比較する

GitHubを使用して、フォークされたリポジトリ間でブランチを比較するには、URLを次のように変更します。

https://github.com/{user}/{repo}/compare/{foreign-user}:{branch}...{own-branch}

例えば:

https://github.com/rails/rails/compare/byroot:master...master

分岐したブランチの比較

要旨

要旨は、本格的なリポジトリを作成せずに、小さなコードを操作する簡単な方法です。

要旨

他のサイトへの埋め込みに適したHTMLのみのバージョンを取得するには

.pibb
、Gist URLの末尾に(このように)追加します。

要旨はリポジトリとして扱うことができるため、他の要点と同じように複製できます。

$ git clone https://gist.github.com/tiimgreen/10545817

要旨

これは、更新を変更してGistsにプッシュすることもできることを意味します。

$ git commit
$ git push
Username for 'https://gist.github.com':
Password for 'https://[email protected]':

ただし、Gistsはディレクトリをサポートしていません。すべてのファイルをリポジトリルートに追加する必要があります。 要旨の作成についてもっと読む。

Git.io

Git.ioは、GitHubのシンプルなURL短縮サービスです。

Git.io

Curlを使用して純粋なHTTP経由で使用することもできます。

$ curl -i http://git.io -F "url=https://github.com/..."
HTTP/1.1 201 Created
Location: http://git.io/abc123

$ curl -i http://git.io/abc123
HTTP/1.1 302 Found
Location: https://github.com/...

Git.ioについてもっと読む。

キーボードショートカット

リポジトリページでは、キーボードショートカットを使用して簡単に移動できます。

  • を押す
    t
    と、ファイルエクスプローラーが表示されます。
  • を押す
    w
    と、ブランチセレクターが表示されます。
  • を押す
    s
    と、現在のリポジトリの検索フィールドにフォーカスされます。↓キーを押して[すべてのGitHub]オプションを選択すると、フィールドが変更され、すべてのGitHubが検索されます。
  • を押す
    l
    と、既存の課題のラベルが編集されます。
  • y
    ファイル(たとえば)を見ているときに押すと
    https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.md
    、URLが変更され、実際には、見ているページがフリーズします。このコードが変更された場合でも、その時点で見たものを見ることができます。

現在のページのすべてのショートカットを表示するには、次を押し

?
ます。

キーボードショートカット

使用できる検索構文の詳細をご覧ください。

リポジトリでの行の強調表示

たとえば、コードファイルのURLの末尾に追加するか

#L52
、行番号をクリックするだけで、その行番号が強調表示されます。

また、範囲を操作

#L53-L60
して、範囲を選択し、
shift
2行を押したままクリックします。

https://github.com/rails/rails/blob/master/activemodel/lib/active_model.rb#L53-L60

線の強調表示

コミットメッセージによる問題の解決

特定のコミットで問題が修正された場合、キーワード

fix/fixes/fixed
close/closes/closed
または
resolve/resolves/resolved
、の後に問題番号が続くと、リポジトリのデフォルトブランチにコミットされると、問題が閉じられます。

$ git commit -m "Fix screwup, fixes #12"

これにより、問題がクローズされ、クローズコミットが参照されます。

クロージングレポ

コミットメッセージを介して問題を閉じる方法の詳細をご覧ください。

クロスリンクの問題

同じリポジトリ内の別の問題にリンクする場合は、ハッシュ

#
を入力してから問題番号を入力するだけで、自動リンクされます。

別のリポジトリの問題にリンクするには

{user}/{repo}#ISSUE_NUMBER
、たとえば、
tiimgreen/toc#12

クロスリンクの問題

会話をロックする

プルリクエストと課題は、リポジトリの所有者または共同編集者がロックできるようになりました。

会話をロックする

これは、プロジェクトの共同作業者ではないユーザーがコメントできなくなることを意味します。

コメントはロックされています

会話のロックについてもっと読む。

プルリクエストのCIステータス

正しく設定されている場合、プルリクエストを受信するたびに、Travis CIは、新しいコミットを行うたびと同じように、そのプルリクエストをビルドします。TravisCIの使用を開始する方法の詳細をご覧ください。

TravisCIステータス

コミットステータスAPIの詳細をご覧ください。

フィルタ

問題とプルリクエストの両方で、ユーザーインターフェイスでのフィルタリングが可能です。

Railsリポジトリの場合:https ://github.com/rails/rails/issues 、「activerecord」というラベルを選択すると、次のフィルターが作成されます。

is:issue label:activerecord

ただし、activerecordというラベルが付いていないすべての問題を見つけることもできます。

is:issue -label:activerecord

さらに、これはプルリクエストでも機能します。

is:pr -label:activerecord

Githubには、未解決または未解決の問題とプルリクエストを表示するためのタブがありますが、マージされたプルリクエストも表示できます。フィルタに次のものを入れるだけです。

is:merged

問題の検索についてもっと読む。

最後に、githubでStatusAPIのステータスでフィルタリングできるようになりました。

成功したステータスのみのプルリクエスト:

status:success

StatusAPIでの検索の詳細をご覧ください。

マークダウンファイルでの構文の強調表示

たとえば、MarkdownファイルでRubyコードをシンタックスハイライトするには、次のように記述します。

```ruby
require 'tabbit'
table = Tabbit.new('Name', 'Email')
table.add_row('Tim Green', '[email protected]')
puts table.to_s
```

これにより、次のものが生成されます。

require 'tabbit'
table = Tabbit.new('Name', 'Email')
table.add_row('Tim Green', '[email protected]')
puts table.to_s

GitHubはLinguistを使用して、言語の検出と構文の強調表示を実行します。言語YAMLファイルを熟読することで、どのキーワードが有効であるかを見つけることができます。

GitHubFlavouredMarkdownの詳細をご覧ください。

絵文字

絵文字は、を使用してプルリクエスト、問題、コミットメッセージ、リポジトリの説明などに追加できます

:name_of_emoji:

GitHubでサポートされている絵文字の完全なリストは、emoji-cheat-sheet.comまたはscotch-io/All-Github-Emoji-Iconsにあります。便利な絵文字検索エンジンはemoji.muan.coにあります。

GitHubで使用されている絵文字のトップ5は次のとおりです。

  1. :shipit:
  2. :sparkles:
  3. :-1:
  4. :+1:
  5. :clap:

画像/GIF

画像やGIFは、コメント、READMEなどに追加できます。

![Alt Text](http://www.sheawong.com/wp-content/uploads/2013/08/keephatin.gif)

リポジトリからの生の画像は、直接呼び出すことで使用できます。

![Alt Text](https://github.com/{user}/{repo}/raw/master/path/to/image.gif)

ピーターは気にしない

すべての画像はGitHubにキャッシュされるため、ホストがダウンしても、画像は引き続き利用できます。

GitHubWikiに画像を埋め込む

Wikiページに画像を埋め込む方法は複数あります。標準のMarkdown構文があります(上に表示)。ただし、画像の高さや幅を指定するなどの構文もあります。

[[ http://www.sheawong.com/wp-content/uploads/2013/08/keephatin.gif | height = 100px ]]

生成するもの:

ただのスクリーンショット

クイッククォート

コメントスレッドで、誰かが以前に言ったことを引用したい場合は、テキストを強調表示してを押し

r
ます。これにより、ブロック引用形式でテキストボックスにコピーされます。

クイッククォート

クイッククォーティングの詳細をご覧ください。

コメントへのクリップボード画像の貼り付け

(Chromeブラウザでのみ動作します)

スクリーンショットを撮り、クリップボード(mac :)に追加した後、画像をコメントセクションに

cmd-ctrl-shift-4
貼り付ける(
cmd-v / ctrl-v
)だけで、githubに自動アップロードされます。

コメントへのクリップボード画像の貼り付け

問題の添付ファイルの詳細をご覧ください。

クイックライセンス

リポジトリを作成するときに、GitHubには事前に作成されたライセンスを追加するオプションがあります。

ライセンス

Webインターフェイスから新しいファイルを作成して、既存のリポジトリに追加することもできます。名前

LICENSE
を入力すると、テンプレートを使用するオプションが表示されます。

ライセンス

でも動作し

.gitignore
ます。

オープンソースライセンスの詳細をご覧ください。

タスクリスト

[問題とプルリクエスト]で、次の構文を使用してチェックボックスを追加できます(スペースに注意してください)。

- [ ] Be awesome
- [ ] Prepare dinner
  - [ ] Research recipe
  - [ ] Buy ingredients
  - [ ] Cook recipe
- [ ] Sleep

タスクリスト

クリックすると、純粋なマークダウンで更新されます。

- [x] Be awesome
- [ ] Prepare dinner
  - [x] Research recipe
  - [x] Buy ingredients
  - [ ] Cook recipe
- [ ] Sleep

タスクリストの詳細をご覧ください。

マークダウンドキュメントのタスクリスト

完全なMarkdownドキュメントでは、次の構文を使用して読み取り専用チェックリストを追加できるようになりました。

- [ ] Mercury
- [x] Venus
- [x] Earth
  - [x] Moon
- [x] Mars
  - [ ] Deimos
  - [ ] Phobos
  • [ ] 水星
  • [x]金星
  • [x]地球
    • [x]月
  • [x]火星
    • []デイモス
    • []フォボス

マークダウンドキュメントのタスクリストの詳細をご覧ください。

相対リンク

内部コンテンツにリンクする場合は、Markdownファイルで相対リンクをお勧めします。

[Link to a header](#awesome-section)
[Link to a file](docs/readme)

URLが変更されるたびに、絶対リンクを更新する必要があります(たとえば、リポジトリの名前が変更された、ユーザー名が変更された、プロジェクトがフォークされた)。相対リンクを使用すると、ドキュメントを簡単に独立させることができます。

相対リンクについてもっと読む。

GitHubPagesのメタデータとプラグインのサポート

Jekyllのページと投稿内で、リポジトリ情報は

site.github
名前空間内で利用可能であり、たとえば、を使用して表示できます
{{ site.github.project_title }}

Jemojiプラグインとjekyll-mentionsプラグインを使用すると、Jekyllの投稿とページの絵文字@mentionsを、GitHub.comのリポジトリとやり取りするときに期待するとおりに機能させることができます。

GitHubPagesのリポジトリメタデータとプラグインサポートの詳細をご覧ください。

ドキュメント内のYAMLメタデータの表示

Jekyll with GitHub Pagesなどの多くのブログWebサイトは、投稿の先頭にあるYAML形式のメタデータに依存しています。GitHubは、読みやすくするために、このメタデータを水平テーブルとしてレンダリングします

YAMLメタデータ

ドキュメントでYAMLメタデータを表示する方法の詳細をご覧ください。

表形式データのレンダリング

.csv
GitHubは、 (コンマ区切りの)ファイルと
.tsv
(タブ区切りの)ファイルの形式で表形式のデータをレンダリングすることをサポートしています。

表形式のデータ

表形式データのレンダリングの詳細をご覧ください。

PDFのレンダリング

GitHubはPDFのレンダリングをサポートしています:

PDF

PDFのレンダリングについてもっと読む。

プルリクエストを元に戻す

プルリクエストがマージされた後、それが何の役にも立たないか、プルリクエストをマージするのは悪い決断だったかもしれません。

プルリクエストページのコミットの右側にある[元に戻す]ボタンをクリックして、この特定のプルリクエストへの変更を元に戻したプルリクエストを作成することで、元に戻すことができます。

元に戻すボタン

プルリクエストを元に戻す方法についてもっと読む

相違点

レンダリングされた散文の差分

GitHubでサポートされているレンダリングされたドキュメント(Markdownなど)、機能ソースレンダリングされたビューなど、コミットとプルリクエスト。

ソース/レンダリングされたビュー

[レンダリング済み]ボタンをクリックして、レンダリングされたドキュメントに表示される変更を確認します。レンダリングされた散文ビューは、テキストを追加、削除、および編集するときに便利です。

レンダリングされた散文の差分

レンダリングされた散文の差分についてもっと読む。

ディファブルマップ

地理データを含むGitHubでコミットまたはプルリクエストを表示するたびに、GitHubは変更内容を視覚的に表現します。

ディファブルマップ

ディファブルマップの詳細をご覧ください。

差分でのコンテキストの拡張

差分のガターにある展開ボタンを使用すると、クリックするだけで追加のコンテキスト行を表示できます。ファイル全体が表示されるまで展開をクリックし続けることができます。この機能は、GitHubが差分をレンダリングする場所であればどこでも利用できます。

差分でのコンテキストの拡張

差分でコンテキストを拡張する方法の詳細をご覧ください。

プルリクエストの差分またはパッチ

.diff
URLの末尾にまたは
.patch
拡張子を追加することで、プルリクエストの差分を取得できます。例えば:

https://github.com/tiimgreen/github-cheat-sheet/pull/15
https://github.com/tiimgreen/github-cheat-sheet/pull/15.diff
https://github.com/tiimgreen/github-cheat-sheet/pull/15.patch

拡張機能は、

.diff
これをプレーンテキストで提供します。

diff --git a/README.md b/README.md
index 88fcf69..8614873 100644
--- a/README.md
+++ b/README.md
@@ -28,6 +28,7 @@ All the hidden and not hidden features of Git and GitHub. This cheat sheet was i
 - [Merged Branches](#merged-branches)
 - [Quick Licensing](#quick-licensing)
 - [TODO Lists](#todo-lists)
+- [Relative Links](#relative-links)
 - [.gitconfig Recommendations](#gitconfig-recommendations)
     - [Aliases](#aliases)
     - [Auto-correct](#auto-correct)
@@ -381,6 +382,19 @@ When they are clicked, they will be updated in the pure Markdown:
 - [ ] Sleep

(...)

画像のレンダリングと差分

GitHubは、PNG、JPG、GIF、PSDなどのいくつかの一般的な画像形式を表示できます。さらに、これらの画像形式のバージョン間の違いを比較する方法はいくつかあります。

異なるPSD

画像のレンダリングと差分についての詳細をお読みください。

ハブ

Hubは、GitHubの操作を容易にする追加の機能とコマンドを提供するコマンドラインGitラッパーです。

これにより、次のようなことができます。

$ hub clone tiimgreen/toc

Hubが提供しなければならないいくつかのよりクールなコマンドをチェックしてください。

貢献ガイドライン

GitHubは、ユーザーがプロジェクトに貢献するのに役立つ3つの異なるファイルの追加をサポートしています。

.github
これらのファイルは、リポジトリのルートまたはルートの下のディレクトリに配置できます。

寄稿ファイル

リポジトリのルートまたはディレクトリに

CONTRIBUTING
またはファイルを追加すると、寄稿者が課題を作成したとき、またはプルリクエストを開いたときに、ファイルへのリンクが追加されます。
CONTRIBUTING.md
.github

貢献ガイドライン

ガイドラインの提供についてもっと読む。

ISSUE_TEMPLATEファイル

プロジェクトで開かれたすべての新しい問題のテンプレートを定義できます。このファイルの内容は、ユーザーが新しい問題を作成するときに新しい問題ボックスに事前入力されます。

ISSUE_TEMPLATE
または
ISSUE_TEMPLATE.md
ファイルをリポジトリのルートまたはディレクトリに追加します
.github

問題テンプレートの詳細をご覧ください。

テンプレートファイルジェネレータを発行します

GitHub問題テンプレート

PULL_REQUEST_TEMPLATEファイル

プロジェクトで開かれたすべての新しいプルリクエストのテンプレートを定義できます。このファイルのコンテンツは、ユーザーがプルリクエストを作成するときにテキスト領域に事前入力されます。

PULL_REQUEST_TEMPLATE
または
PULL_REQUEST_TEMPLATE.md
ファイルをリポジトリのルートまたはディレクトリに追加します
.github

プルリクエストテンプレートの詳細をご覧ください。

プルリクエストテンプレートファイルジェネレータ

オクティコン

GitHubsアイコン(Octicons)がオープンソースになりました。

オクティコン

GitHubのオクティコンについてもっと読む

GitHub Student Developer Pack

学生の場合は、GitHub StudentDeveloperPackを利用できます。これにより、無料のクレジット、無料の試用版、および開発時に役立つソフトウェアへの早期アクセスが提供されます。

GitHub Student Developer Pack

GitHubのStudentDeveloperPackについてもっと読む

GitHubリソース

タイトル リンク
GitHubエクスプローラ https://github.com/explore
GitHubブログ https://github.com/blog
GitHubヘルプ https://help.github.com/
GitHubトレーニング https://training.github.com/
GitHub開発者 https://developer.github.com/
Github Education(学生向けの無料のマイクロアカウントおよびその他のもの) https://education.github.com/
GitHubのベストプラクティス ベストプラクティスリスト

GitHubトーク

タイトル リンク
GitHubがGitHubを使用してGitHubを構築する方法 https://www.youtube.com/watch?v=qyz3jkOBbQY
GitHubのScottChaconによるGitの紹介 https://www.youtube.com/watch?v=ZDR433b0HJY
GitHubが機能しなくなった方法 https://www.youtube.com/watch?v=gXD1ITW7iZI
GitとGitHubの秘密 https://www.youtube.com/watch?v=Foz9yvMkvlA
その他のGitとGitHubの秘密 https://www.youtube.com/watch?v=p50xsL-iVgU

SSHキー

次のサイトにアクセスすると、プレーンテキスト形式の公開sshキーのリストを取得できます。

https://github.com/{user}.keys

例:https ://github.com/tiimgreen.keys

公開sshキーへのアクセスの詳細をご覧ください。

プロフィール画像

次のサイトにアクセスして、ユーザーのプロフィール画像を取得できます。

https://github.com/{user}.png

例:https ://github.com/tiimgreen.png

リポジトリテンプレート

リポジトリでテンプレートを有効にして、誰でもディレクトリ構造とファイルをコピーできるようにして、ファイルをすぐに使用できるようにすることができます(たとえば、チュートリアルや定型コードを作成する場合)。これは、リポジトリの設定で有効にできます。

変換

テンプレートリポジトリに変更すると、共有可能な新しいURLエンドポイントが提供され、ユーザーはリポジトリをテンプレートとしてすぐに使用できるようになります。または、リポジトリに移動して[テンプレートとして使用]ボタンをクリックすることもできます。

レンプレート

テンプレートとしてのリポジトリの使用についてもっと読む

ギット

作業ツリーからすべての削除されたファイルを削除します

を使用して多数のファイルを削除する場合

/bin/rm
は、次のコマンドを使用して、作業ツリーとインデックスからファイルを削除できます。これにより、各ファイルを個別に削除する必要がなくなります。

$ git rm $(git ls-files -d)

例えば:

$ git status
On branch master
Changes not staged for commit:
	deleted:    a
	deleted:    c

$ git rm $(git ls-files -d)
rm 'a'
rm 'c'

$ git status
On branch master
Changes to be committed:
	deleted:    a
	deleted:    c

前のブランチ

Gitの前のブランチに移動するには:

$ git checkout -
# Switched to branch 'master'

$ git checkout -
# Switched to branch 'next'

$ git checkout -
# Switched to branch 'master'

Gitブランチの詳細をご覧ください。

ストリップスペース

Git Stripspace:

  • 末尾の空白を削除します
  • 改行を折りたたむ
  • ファイルの終わりに改行を追加します

コマンドを呼び出すときにファイルを渡す必要があります。例:

$ git stripspace < README.md

stripspace
Gitコマンドの詳細をご覧ください。

Checking out Pull Requests

Pull Requests are special branches on the GitHub repository which can be retrieved locally in several ways:

Retrieve a specific Pull Request and store it temporarily in

FETCH_HEAD
for quickly
diff
-ing or
merge
-ing:

$ git fetch origin refs/pull/[PR-Number]/head

Acquire all Pull Request branches as local remote branches by refspec:

$ git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'

Or setup the remote to fetch Pull Requests automatically by adding these corresponding lines in your repository's

.git/config
:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = [email protected]:tiimgreen/github-cheat-sheet.git
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = [email protected]:tiimgreen/github-cheat-sheet.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

For Fork-based Pull Request contributions, it's useful to

checkout
a remote branch representing the Pull Request and create a local branch from it:

$ git checkout pr/42 pr-42

Or should you work on more repositories, you can globally configure fetching pull requests in the global git config instead.

git config --global --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"

This way, you can use the following short commands in all your repositories:

git fetch origin
git checkout pr/42

Read more about checking out pull requests locally.

Empty Commits

Commits can be pushed with no code changes by adding

--allow-empty
:

$ git commit -m "Big-ass commit" --allow-empty

Some use-cases for this (that make sense), include:

  • Annotating the start of a new bulk of work or a new feature.
  • Documenting when you make changes to the project that aren't code related.
  • Communicating with people using your repository.
  • The first commit of a repository:
    git commit -m "Initial commit" --allow-empty
    .

Styled Git Status

Running:

$ git status

produces:

gitステータス

By adding

-sb
:

$ git status -sb

this is produced:

git status -sb

Read more about the Git

status
command.

Styled Git Log

Running:

$ git log --all --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

produces:

git log --all --graph --pretty = format:'%Cred%h%Creset-%C(auto)%d%Creset%s%Cgreen(%cr)%C(bold blue)<%an>% Creset'--abbrev-commit --date = Relative

Credit to Palesz

This can be aliased using the instructions found here.

Read more about the Git

log
command.

Git Query

A Git query allows you to search all your previous commit messages and find the most recent one matching the query.

$ git show :/query

where

query
(case-sensitive) is the term you want to search, this then finds the last one and gives details on the lines that were changed.

$ git show :/typo

git show:/ query

Press

q
to quit.

Git Grep

Git Grep will return a list of lines matching a pattern.

Running:

$ git grep aliases

will show all the files containing the string aliases.

git grep aliases

Press

q
to quit.

You can also use multiple flags for more advanced search. For example:

  • -e
    The next parameter is the pattern (e.g., regex)
  • --and
    ,
    --or
    and
    --not
    Combine multiple patterns.

Use it like this:

 $ git grep -e pattern --and -e anotherpattern

Read more about the Git

grep
command.

Merged Branches

Running:

$ git branch --merged

will give you a list of all branches that have been merged into your current branch.

Conversely:

$ git branch --no-merged

will give you a list of branches that have not been merged into your current branch.

Read more about the Git

branch
command.

Fixup and Autosquash

If there is something wrong with a previous commit (can be one or more from HEAD), for example

abcde
, run the following command after you've amended the problem:

$ git commit --fixup=abcde
$ git rebase abcde^ --autosquash -i

Read more about the Git

commit
command. Read more about the Git
rebase
command.

Web Server for Browsing Local Repositories

Use the Git

instaweb
command to instantly browse your working repository in
gitweb
. This command is a simple script to set up
gitweb
and a web server for browsing the local repository.

$ git instaweb

opens:

Git instaweb

Read more about the Git

instaweb
command.

Git Configurations

Your

.gitconfig
file contains all your Git configurations.

Aliases

Aliases are helpers that let you define your own git calls. For example you could set

git a
to run
git add --all
.

To add an alias, either navigate to

~/.gitconfig
and fill it out in the following format:

[alias]
  co = checkout
  cm = commit
  p = push
  # Show verbose output about tags, branches or remotes
  tags = tag -l
  branches = branch -a
  remotes = remote -v

...or type in the command-line:

$ git config --global alias.new_alias git_function

For example:

$ git config --global alias.cm commit

For an alias with multiple functions use quotes:

$ git config --global alias.ac 'add -A . && commit'

Some useful aliases include:

Alias Command What to Type
git cm
git commit
git config --global alias.cm commit
git co
git checkout
git config --global alias.co checkout
git ac
git add . -A
git commit
git config --global alias.ac '!git add -A && git commit'
git st
git status -sb
git config --global alias.st 'status -sb'
git tags
git tag -l
git config --global alias.tags 'tag -l'
git branches
git branch -a
git config --global alias.branches 'branch -a'
git cleanup
git branch --merged | grep -v '*' | xargs git branch -d
git config --global alias.cleanup "!git branch --merged | grep -v '*' | xargs git branch -d"
git remotes
git remote -v
git config --global alias.remotes 'remote -v'
git lg
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"

Some Aliases are taken from @mathiasbynens dotfiles: https://github.com/mathiasbynens/dotfiles/blob/master/.gitconfig

Auto-Correct

Git gives suggestions for misspelled commands and if auto-correct is enabled the command can be fixed and executed automatically. Auto-correct is enabled by specifying an integer which is the delay in tenths of a second before git will run the corrected command. Zero is the default value where no correcting will take place, and a negative value will run the corrected command with no delay.

For example, if you type

git comit
you will get this:

$ git comit -m "Message"
# git: 'comit' is not a git command. See 'git --help'.

# Did you mean this?
#   commit

Auto-correct can be enabled like this (with a 1.5 second delay):

$ git config --global help.autocorrect 15

So now the command

git comit
will be auto-corrected to
git commit
like this:

$ git comit -m "Message"
# WARNING: You called a Git command named 'comit', which does not exist.
# Continuing under the assumption that you meant 'commit'
# in 1.5 seconds automatically...

The delay before git will rerun the command is so the user has time to abort.

Color

To add more color to your Git output:

$ git config --global color.ui 1

Read more about the Git

config
command.

Git Resources

Title Link
Official Git Site http://git-scm.com/
Official Git Video Tutorials http://git-scm.com/videos
Code School Try Git http://try.github.com/
Introductory Reference & Tutorial for Git http://gitref.org/
Official Git Tutorial http://git-scm.com/docs/gittutorial
Everyday Git http://git-scm.com/docs/everyday
Git Immersion http://gitimmersion.com/
Git God https://github.com/gorosgobe/git-god
Git for Computer Scientists http://eagain.net/articles/git-for-computer-scientists/
Git Magic http://www-cs-students.stanford.edu/~blynn/gitmagic/
Git Visualization Playground http://onlywei.github.io/explain-git-with-d3/#freeplay
Gitブランチを学ぶ http://pcottle.github.io/learnGitBranching/
便利な.gitignoreテンプレートのコレクション https://github.com/github/gitignore
Unixornのgitスクリプトのgit-extra-commandsコレクション https://github.com/unixorn/git-extra-commands

Git Books

タイトル リンク
Gitを使用した実用的なバージョン管理 https://pragprog.com/titles/tsgit/pragmatic-version-control-using-git
Pro Git http://git-scm.com/book
Git Internals PluralSight https://github.com/pluralsight/git-internals-pdf
塹壕でのGit http://cbx33.github.io/gitt/
Gitによるバージョン管理 http://www.amazon.com/Version-Control-Git-collaborative-development/dp/1449316387
Gitの実用ガイド https://pragprog.com/titles/pg_git/pragmatic-guide-to-git
Git:すべての人のためのバージョン管理 https://www.packtpub.com/application-development/git-version-control-everyone

Gitビデオ

タイトル リンク
GitのLinusTorvalds https://www.youtube.com/watch?v=4XpnKHJAok8
スコットチャコンとのGitの紹介 https://www.youtube.com/watch?v=ZDR433b0HJY
ビットアップからのGit https://www.youtube.com/watch?v=MYP56QJpDr4
グラフ、ハッシュ、圧縮、オーマイ! https://www.youtube.com/watch?v=ig5E8CcdM9g
GitHubトレーニングとガイド https://www.youtube.com/watch?list=PLg7s6cbtAD15G8lNyoaYDuKZSKyJrgwB-&v=FyfwLX4HAxM

Gitの記事

タイトル リンク
GitHubフロー http://scottchacon.com/2011/08/31/github-flow.html
Git Large File Storate(Git LFS)への移行 http://vooban.com/en/tips-articles-geek-stuff/migrating-to-git-lfs-for-developing-deep-learning-applications-with-large-files/