It has been archived by the owner. It is now read-only.
日本語翻訳に関するメモ
Git や GitHub の便利な使い方をまとめたられた GitHub cheat sheet の日本語訳です。
もっと分かりやすくしたいので翻訳に関するダメ出しは歓迎です。
| レポジトリ | |
|---|---|
| 原文 | tiimgreen/github-cheat-sheet |
| 日本語翻訳 | sotayamashita/github-cheat-sheet |
概要
このチートシートは、Zach HolmanさんがAloha Ruby Conference 2012 (slides)で発表されたGit and GitHub Secrets と WDCNZ 2013 (slides)で発表された彼のMore Git and GitHub Secretsに触発されまとめました。
目次
- GitHub
- 空行を無視
- ユーザー別のコミットヒストリー表示
- レポジトリのクローン
- ブランチの比較
- フォークされたブランチとの比較
- Gists
- Git.io
- ショートカットキー
- レポジトリ内のコードをハイライト
- コミットメッセージによるissueのクローズ
- issue同士のリンク
- プルリクエストにCIステータスを表示
- マークダウンファイル内でのコードのハイライト
- 絵文字
- 画像(GIF)
- 素早く引用(Quick Quoting)
- ライセンスを簡単に表示(Quick Licensing)
- タスクリスト
- 相対リンク
- GitHubページで使えるメタデータやプラグイン
- YAMLメタデータをドキュメントで表示
- 表形式データの表示
- 差分
- Hub
- Frictionと使ってコントリビューターとの衝突(Friction)を減らす
- コントリビューティングガイドライン
- GitHubに関するサイトなどの情報
- Git
- 前のBranchへ
- Stripspace
- プルリクエストをチェックアウト
- 空のコミット

- Git Statusのスタイル
- Git Logのスタイル
- Git Query
- マージされたブランチ
- ローカルレポジトリを見るためのウェブサーバ
- Gitの設定
- Gitに関するサイトなどの情報
GitHub
空行を無視
?w=1をdiff URLにつけることによって空白行が削除されるので、変わったところだけを見ることができます
より詳しいGtihubの秘密についてはこちらを参照してください。
ユーザー別のコミットヒストリー表示
URLに?author=usernameを加えることでユーザーごとのコミットを見ることができます。
https://github.com/rails/rails/commits/master?author=dhh
commit viewに関してのより詳しい内容はこちらを参照してください。
レポジトリのクローン
レポジトリのクローンは以下のコマンドを使用することでできます
$ git clone https://github.com/tiimgreen/github-cheat-sheet
Gitの clone コマンドに関してのより詳しい内容はこちらを参照してください。
ブランチの比較
ブランチの比較をGtihubを使ってやるためには以下のようにURLを変更します:
https://github.com/user/repo/compare/{範囲}
範囲の指定方法、{範囲} = master...4-1-stable
例:
https://github.com/rails/rails/compare/master...4-1-stable
{範囲} は以下のようにも指定することもできます:
https://github.com/rails/rails/compare/master@{1.day.ago}...master
https://github.com/rails/rails/compare/master@{2014-10-04}...master
日付の指定は YYYY-DD-MM のようにします
日付を指定することによって、何日前のものや特定のmasterブランチと比較をすることができます
時間によってcommitメッセージを比較することに関してのより詳しい内容はこちらを参照してください
forkされたbranchとの比較
GitHubを使ってforkされたbranchとの比較をする際には以下のようにURLを変更します:
https://github.com/user/repo/compare/{foreign-user}:{branch}...{own-branch}
例:
https://github.com/rails/rails/compare/byroot:master...master
Gists
Gists はわざわざrepositroryを作るまでもないちょっとしたコードを扱う際に便利です
このようにGist URLの最後に.pibbをつけることによって他のWebサイトに埋め込み可能なHTMLバージョンを得ることができます。
Gistsはレポジトリと同じようにクローンをすることができます:
$ git clone https://gist.github.com/tiimgreen/10545817
Gistsに関してのより詳しい内容はこちらを参照してください
Git.io
Git.io はGitHubのために短縮URLを生成します。
You can also use it via pure HTTP using Curl:
$ 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を押すと検索部分にフォカースします -
lを押すと既存のissueでラベルを編集できます -
yを押すと例えば、(e.g.https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.md)をそのURLを固定します。なのでもしコードを変更しても、今見ているコードはそのままみることができます。
現在のページで使えるショートカットキーを知りたい場合はその画面で ? を押してください:
ショートカットキーに関してのより詳しい内容はこちらを参照してください
レポジトリ内のコードをハイライト
Either adding #L52 to the end of a code file URL or simply clicking the line number will highlight that line number.
It also works with ranges, e.g. #L53-L60, to select ranges, hold shift and click two lines:
https://github.com/rails/rails/blob/master/activemodel/lib/active_model.rb#L53-L60
コミットメッセージによるissueのクローズ
もしある issue を解決した際に、fix/fixes/fixed
、close/closes/closed、resolve/resolves/resolvedとそのissueの番号などのキーワードのcommitメッセージがmasterブランチにコミットされることでそのissueを閉じることができます
$ git commit -m "Fix cock up, fixes #12"
Commitメッセージによる既存のissue閉じ方に関してのより詳しい内容はこちらを参照してください
issue同士のリンク
同じレポジトリ内のissueに他のissueを紐付けたい場合には、#でissueの番号をつけると自動的にリンクを張ってくれます
別のレポジトリのissueと紐付けたい場合には user_name/repo_name#ISSUE_NUMBER 例えば tiimgreen/toc#12 とします
Pull RequestにCIステータスを表示
プルリクエストを受け取った際に毎回、Travis CI が毎回のコミットメッセージの際にテストを通すようにそのプルリクエストに対してテストをします。その方法についてはTravis CIのget started with Travis CI.を参照してください。
commit statusのAPIに関してのより詳しい内容はこちらを参照してください
マークダウンファイル内でのコードのハイライト
例えば、Rubyのコードをマークダウンのファイルでハイライトする場合には以下のようにします:
```ruby
require 'tabbit'
table = Tabbit.new('Name', 'Email')
table.add_row('Tim Green', 'tiimgreen@gmail.com')
puts table.to_s
```
すると以下のようになります:
require 'tabbit'
table = Tabbit.new('Name', 'Email')
table.add_row('Tim Green', 'tiimgreen@gmail.com')
puts table.to_s
GitHubはコードの判定とそのシンタックスハイライトをするために Linguist を使用しています。どのキーワードが使えるかは languages YAML file で見ることができます。
Read more about GitHub Flavored Markdown.
絵文字
絵文字を、プルリクエスト、issues、commitメッセージ、マークダウンファイルなどで使うことができます :絵文字の名前::
例:
:smile:
すると以下のような絵文字が表示されます:
![]()
GitHubで使える絵文字のリストは emoji-cheat-sheet.com か scotch-io/All-GitHub-Emoji-Iconsで見ることができます。
ちなみにGitHubでよく使われる絵文字5つはこれです:
-
- :shipit: -
- :sparkles: -
- :-1: -
- :+1: -
- :clap:
画像(GIF)
画像やGIFをcommnetsやREADMEファイルなどに使うことができます:

すべての画像はGitHubでキャッシュされます。なので画像のホスト先が落ちても画像は消えません
GitHub Wikiに画像を埋め込む
Wikiページに画像を埋め込む方法はいくつかあります。主な方法としては上記のような基本的なマークダウンの記法があります。また画像の幅や高さを指定できる記法もあります。
[[ http://www.sheawong.com/wp-content/uploads/2013/08/keephatin.gif | height = 100px ]]
すると以下のようになります:
素早く引用(Quick Quoting)
コメントをする際に前のコメントを引用したいとき、まずそのテキストを選択して r を押すとその部分があなたのコメント部分に > がついた形で反映されます
素早く引用(quick quoting)に関してのより詳しい内容はこちらを参照してください
ライセンスを簡単に表示(Quick Licensing)
レポジトリを作成した際にGitHubが簡単にライセンスを表示できる選択肢があります:
もちろん既存のレポジトリに対してライセンスを作成することができます。ファイル名に LICENSE と入力するとライセンスの選択肢が表示されます:
.gitignoreでも同様のことができます
オープンソースライセンスに関してのより詳しい内容はこちらを参照してください
タスクリスト
issueやプルリクエストの中に以下のような方法で書くとチェックボックスを追加することができます:
- [ ] Be awesome
- [ ] Do stuff
- [ ] Sleep
リストをクリックすると、自動的にマークダウンにも反映されます:
- [x] Be awesome
- [x] Do stuff
- [ ] Sleep
タスクリストに関してのより詳しい内容はこちらを参照してください
相対リンク
マークダウンで相対リンクの使用は推奨されています
[Link to a header](#awesome-section)
[Link to a file](docs/readme)
絶対リンクはレポジトリ名やユーザー名が、フォーク先などが変更された際に必ずそれを変更しなければなりません。なので相対リンクを使うことによってドキュメントの保守性を高めることができます
GitHubでの相対リンクに関してのより詳しい内容はこちらを参照してください
GitHubページで使えるメタデータやプラグイン
Jekyllのpagesとpostsにレポジトリ情報をsite.githubで表示することができます。例えば、 {{ site.github.project_title }}のように使います。
Jemojiとjekyll-mentionプラグインでemojiや@mentions をJekyllのpostsやpagesGtihub.comのレポジトリが変更されればそれにともなって動的に変わります。
GitHubページで使えるレポジトリのメタデータやプラグインに関してのより詳しい内容はこちらを参照してください
YAMLメタデータをドキュメントで表示
GitHub PagesやJekyllのような多くのブログサービスはその投稿にYAMLのメタデータの形式をとっています。GitHubはこれらのデータを以下の画像のように見やすく表示してくれます。
YAMLメタデータをドキュメントで表示することに関してのより詳しい内容はこちらを参照してください
表形式データの表示
GitHubは.csvや .tsv のファイルフォーマットを使用することで表形式データの表示を可能にします。
表形式データの表示に関してのより詳しい内容はこちらを参照してください
差分
レンダリングされた差分
マークダウンなどを含むコミットやプルリクエストでは source と rendered という選択肢が表示される機能があります。
"rendered" ボタンを押すとドキュメントをレンダリングした状態での差分を表示してくれます:
レンダリングされた差分に関してのより詳しい内容はこちらを参照してください
地図の差分
地図の情報を含むcommitやプルリクエストを見る際に、GitHubはそれを視覚的にその差分を表示します
地図の差分に関してのより詳しい内容はこちらを参照してください
差分コンテンツの展開
差分の展開ボタン(unfold)を使用すると、クリックするだけで、コンテキストの追加の行を明らかにすることができます。ファイル全体を明らかにしてきたまで展開クリック保つことができ、かつ機能がGitHubには、差分を表示することが可能です。
差分コンテンツの展開に関してのより詳しい内容はこちらを参照してください
差分(Diff・Patch) of Pull Request
URLに .diff か .patch をURLに追加するこでプルリクエストの差分を見ることができます。
例:
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をURLに追加すると以下のようになります:
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
(...)
Hub
HubはGitのラッパーでさらに便利な機能やGitHubと一緒に使うとと便利なコマンドなどが追加されています。
以下のコマンドでこれまでの$ git cloneと同様のことができます:
$ hub clone tiimgreen/toc
Hubのコマンドに関してのクールな機能についてのより詳しい内容はこちらを参照してください
Frictionと使ってコントリビューターとの衝突(Friction)を減らす
もしも、あなたのプロジェクトを使ってそして開発に貢献して欲しい場合、まずは以下の基本的な質問に答える必要があります。このプロジェクトはなんなのか?・どう使うのか?・どのような場合に使えるのか?・どのように貢献すればいいのか?・どのように開発すればいいのか?・どのように開発すれば自分の新しい機能が既存のものを壊さずにでるのか?
Frictionというコマンドラインツールが基本的なこと.に関して調べてくれます。
例:
Friction MRI 2.1.0, MRI 2.0.0, and MRI 1.9.3. をサポートしています
コントリビューティングガイドライン
CONTRIBUTING ファイルをレポジトリのルートに追加することによって、協力してくれる方がissueを作くる時やプルリクエストを送る際に際に以下の画像のようにCONTRIBUTINGファイルへのリンクが表示されます。
Contributing Guidelinesに関してのより詳しい内容はこちらを参照してください
GitHubに関するサイトなどの情報
| タイトル | リンク |
|---|---|
| GitHub Explore | https://github.com/explore |
| GitHub Blog | https://github.com/blog |
| GitHub Help | https://help.github.com/ |
| GitHub Training | http://training.github.com/ |
| GitHub Developer | https://developer.github.com/ |
GitHub トーク
| タイトル | リンク |
|---|---|
| How GitHub Uses GitHub to Build GitHub | https://www.youtube.com/watch?v=qyz3jkOBbQY |
| Introduction to Git with Scott Chacon of GitHub | https://www.youtube.com/watch?v=ZDR433b0HJY |
| How GitHub No Longer Works | https://www.youtube.com/watch?v=gXD1ITW7iZI |
| Git and GitHub Secrets | https://www.youtube.com/watch?v=Foz9yvMkvlA |
| More Git and GitHub Secrets | https://www.youtube.com/watch?v=p50xsL-iVgU |
Git
前のBranchへ
Gitで前のbranchに戻る:
$ git checkout -
# Switched to branch 'master'
$ git checkout -
# Switched to branch 'next'
$ git checkout -
# Switched to branch 'master'
Git branchingに関してのより詳しい内容はこちらを参照してください。
Stripspace
Git Stripspace:
- 末尾のホワイトスペースの削除
- 空白を詰める
- ファイルの最後に空行を追加
ファイルはこのようなコマンドで呼ばれます
例:
$ git stripspace < README.md
Git stripspace に関してのより詳しい内容はこちらを参照してください。
プルリクエストをチェックアウト
プルリクエストをローカルにチェックアウトしたい場合に、以下のコマンドを使ってフェッチすることがきます:
$ git fetch origin '+refs/pull/*/head:refs/pull/*'
そして、プルリクエストをチェックアウトできます:
$ git checkout refs/pull/42
他の方法としては、リモートブランチとしてフェッチすることもできます:
$ git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'
そしてこのようにチェックアウトします:
$ git checkout origin/pr/42
.git/configに以下のコードを追加すると自動的にフェッチすることもできます:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:tiimgreen/github-cheat-sheet.git
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:tiimgreen/github-cheat-sheet.git
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
ローカルにプルリクエストをチェックアウトすること関してのより詳しい内容はこちらを参照してください。
空のコミット
--allow-emptyを追加することによってコードに何も変更を加えてなくてもそのcommitメッセージをpushできます:
$ git commit -m "Big-ass commit" --allow-empty
例えば、以下のようなときに使います:
- 新しい機能の追加などの始まりを明確にするために
- コードに関係ないドキュメントの変化をした場合
- レポジトリ上でのコミュニケーションをするために
Git Statusのスタイル
実行:
$ git status
すると以下のようになります:
-sb を追加すると:
$ git status -sb
すると以下のようになります:
* Git status コマンドに関してのより詳しい内容はこちらを参照してください。*
Git Logのスタイル
実行:
$ git log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
すると以下のようになります:
Credit to Palesz
ここにエイリアスの仕組みを参照されます
* Git log コマンドに関してのより詳しい内容はこちらを参照してください。*
Git Query
Git Queryを使うことによって今までのコミットメッセージの中の最も新しいものからqueryにマッチするものを検索することができます。
$ git show :/query
query 部分には検索したい単語をいれます。そしてマッチする最も新しいものの詳細が表示されます。
$ git show :/typo
q と押すと中断されます
マージされたブランチ
実行:
$ git branch --merged
これまでに現在のブランチにマージされたブランチの一覧が表示されます。
逆の場合:
$ git branch --no-merged
これまでに現在のブランチにマージされていないブランチの一覧が表示されます。
Read more about the Git branch command.
ローカルレポジトリを見るためのウェブサーバ
gitwebでinstaweb コマンドを使うことによって現在のレポジトリを見ることができます。このコマンドは簡単に gitweb を立ち上げるためのものでこれはローカルレポジトリを見るためのウェブサーバーです。
$ git instaweb
すると以下のような画面が開きます:
Git instawebコマンドに関してのクールな機能についてのより詳しい内容はこちらを参照してください
Gitの設定
.gitconfigにはGitの設定のすべてが含まれています。
エイリアス
エイリアスを使うことによってGitコマンドの呼び方を自分で設定することができます。例えば、git aをgit add --allのエイリアスとして設定できます。
エイリアスを設定する際には ~/.gitconfig に以下のようになります:
[alias]
co = checkout
cm = commit
p = push
# Show verbose output about tags, branches or remotes
tags = tag -l
branches = branch -a
remotes = remote -v
もしくは以下のようなコマンドを打って ~/.gitconfig に追加します:
$ git config --global alias.new_alias git_function
例:
$ git config --global alias.cm commit
複数のコマンドを合わせたものを設定したい場合は、シングルクォーテーションで囲みます:
$ git config --global alias.ac 'add -A . && commit'
いくつかの便利なエイリアス一覧:
| 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 remotes |
git remote -v |
git config --global alias.remotes 'remote -v' |
コマンドの自動補完機能
もし間違って、$ git comt と打ってしまうと以下のようになります:
$ git comit -m "Message"
# git: 'comit' is not a git command. See 'git --help'.
# Did you mean this?
# commit
comit と打ってもcommit を自動的に補完させるためには以下のします:
$ git config --global help.autocorrect 1
すると以下のようになります:
$ 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 0.1 seconds automatically...
Color
Gitコマンドに関するアウトプットに色をつけるために:
$ git config --global color.ui 1
Read more about the Git config command.
Gitに関するサイトなどの情報
| タイトル | リンク |
|---|---|
| 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/ |
| Ry's Git Tutorial | http://rypress.com/tutorials/git/index.html |
| Git for Designer | http://hoth.entp.com/output/git_for_designers.html |
| Git for Computer Scientists | http://eagain.net/articles/git-for-computer-scientists/ |
| Git Magic | http://www-cs-students.stanford.edu/~blynn/gitmagic/ |
Gitに関する本の一覧
| タイトル | リンク |
|---|---|
| 開発効率をUPする Git逆引き入門 | http://goo.gl/UimwGu |
| Pragmatic Version Control Using Git | http://www.pragprog.com/titles/tsgit/pragmatic-version-control-using-git |
| Pro Git | http://git-scm.com/book |
| Git Internals Peepcode | http://peepcode.com/products/git-internals-pdf |
| Git in the Trenches | http://cbx33.github.com/gitt/ |
| Version Control with Git | http://www.amazon.com/Version-Control-Git-collaborative-development/dp/1449316387 |
| Pragmatic Guide to Git | http://www.pragprog.com/titles/pg_git/pragmatic-guide-to-git |
| Git: Version Control for Everyone | http://www.packtpub.com/git-version-control-for-everyone/book |


























