GitやGtihubの便利な使い方をまとめたられたGithub cheat sheetの日本語訳です。Github Cheat Sheetには便利な機能がたくさんありせっかくなので日本語翻訳をしました。まだまだ途中ですが一旦公開いたします。もっと分かりやすくしたいので翻訳に関するダメ出しは歓迎です。
- 元のレポジトリ
- tiimgreen/github-cheat-sheet
- 日本語翻訳レポジトリ
- sota0805/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に関するサイトなどの情報
?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メッセージを比較することに関してのより詳しい内容はこちらを参照してください
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 はわざわざrepositroryを作るまでもないちょっとしたコードを扱う際に便利です
このようにGist URLの最後に.pibb
をつけることによって他のWebサイトに埋め込み可能なHTMLバージョンを得ることができます。
Gistsはレポジトリと同じようにクローンをすることができます:
$ git clone https://gist.github.com/tiimgreen/10545817
Gistsに関してのより詳しい内容はこちらを参照してください
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 を解決した際に、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と紐付けたい場合には user_name/repo_name#ISSUE_NUMBER
例えば tiimgreen/toc#12
とします
プルリクエストを受け取った際に毎回、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をcommnetsやREADMEファイルなどに使うことができます:
![Alt Text](http://www.sheawong.com/wp-content/uploads/2013/08/keephatin.gif)
すべての画像はGithubでキャッシュされます。なので画像のホスト先が落ちても画像は消えません
Wikiページに画像を埋め込む方法はいくつかあります。主な方法としては上記のような基本的なマークダウンの記法があります。また画像の幅や高さを指定できる記法もあります。
[[ http://www.sheawong.com/wp-content/uploads/2013/08/keephatin.gif | height = 100px ]]
すると以下のようになります:
コメントをする際に前のコメントを引用したいとき、まずそのテキストを選択して r
を押すとその部分があなたのコメント部分に >
がついた形で反映されます
素早く引用(quick quoting)に関してのより詳しい内容はこちらを参照してください
レポジトリを作成した際に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での相対リンクに関してのより詳しい内容はこちらを参照してください
Jekyllのpagesとpostsにレポジトリ情報をsite.github
で表示することができます。例えば、 {{ site.github.project_title }}
のように使います。
Jemojiとjekyll-mentionプラグインでemojiや@mentions をJekyllのpostsやpagesGtihub.comのレポジトリが変更されればそれにともなって動的に変わります。
Githubページで使えるレポジトリのメタデータやプラグインに関してのより詳しい内容はこちらを参照してください
GitHub PagesやJekyllのような多くのブログサービスはその投稿にYAMLのメタデータの形式をとっています。Githubはこれらのデータを以下の画像のように見やすく表示してくれます。
YAMLメタデータをドキュメントで表示することに関してのより詳しい内容はこちらを参照してください
Githubは.csv
や .tsv
のファイルフォーマットを使用することで表形式データの表示を可能にします。
表形式データの表示に関してのより詳しい内容はこちらを参照してください
マークダウンなどを含むコミットやプルリクエストでは source と rendered という選択肢が表示される機能があります。
"rendered" ボタンを押すとドキュメントをレンダリングした状態での差分を表示してくれます:
レンダリングされた差分に関してのより詳しい内容はこちらを参照してください
地図の情報を含むcommitやプルリクエストを見る際に、Githubはそれを視覚的にその差分を表示します
地図の差分に関してのより詳しい内容はこちらを参照してください
差分の展開ボタン(unfold)を使用すると、クリックするだけで、コンテキストの追加の行を明らかにすることができます。ファイル全体を明らかにしてきたまで展開クリック保つことができ、かつ機能がGitHubには、差分を表示することが可能です。
差分コンテンツの展開に関してのより詳しい内容はこちらを参照してください
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はGitのラッパーでさらに便利な機能やGithubと一緒に使うとと便利なコマンドなどが追加されています。
以下のコマンドでこれまでの$ git clone
と同様のことができます:
$ hub clone tiimgreen/toc
Hubのコマンドに関してのクールな機能についてのより詳しい内容はこちらを参照してください
もしも、あなたのプロジェクトを使ってそして開発に貢献して欲しい場合、まずは以下の基本的な質問に答える必要があります。このプロジェクトはなんなのか?・どう使うのか?・どのような場合に使えるのか?・どのように貢献すればいいのか?・どのように開発すればいいのか?・どのように開発すれば自分の新しい機能が既存のものを壊さずにでるのか?
Frictionというコマンドラインツールが基本的なこと.に関して調べてくれます。
例:
Friction MRI 2.1.0, MRI 2.0.0, and MRI 1.9.3. をサポートしています
CONTRIBUTING
ファイルをレポジトリのルートに追加することによって、協力してくれる方がissueを作くる時やプルリクエストを送る際に際に以下の画像のようにCONTRIBUTING
ファイルへのリンクが表示されます。
Contributing Guidelinesに関してのより詳しい内容はこちらを参照してください
タイトル | リンク |
---|---|
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/ |
タイトル | リンク |
---|---|
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 checkout -
# Switched to branch 'master'
$ git checkout -
# Switched to branch 'next'
$ git checkout -
# Switched to branch 'master'
Git branchingに関してのより詳しい内容はこちらを参照してください。
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
すると以下のようになります:
-sb
を追加すると:
$ git status -sb
すると以下のようになります:
* Git status
コマンドに関してのより詳しい内容はこちらを参照してください。*
実行:
$ 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を使うことによって今までのコミットメッセージの中の最も新しいものから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
コマンドに関してのクールな機能についてのより詳しい内容はこちらを参照してください
.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...
Gitコマンドに関するアウトプットに色をつけるために:
$ git config --global color.ui 1
Read more about the Git config
command.
タイトル | リンク |
---|---|
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/ |
タイトル | リンク |
---|---|
開発効率をUPする Git逆引き入門 | http://goo.gl/vHb8Sr |
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 |