目次
- 目次
- はじめに
- gitコマンドメモ
- git status
- git commit -a
- git commit --amend 一つ前のコミットメッセージを修正
- git commit -v
- git commit -m "bug fix"
- git log
- git log -- pretty=short
- git log file
- git log -p
- git log --graph
- git reflog
- git diff
- git branch
- git branch -D feature
- git checkout -b hoge
- git checkout master
- git checkout -
- git merge --no-ff hoge
- git reset --hard
- git rebase -i HEAD~2
- git remote add origin https://hogehoge.git
- git push -u origin master
- git clone https://github.com/hogehoge.git
- git submodule add https://github.com/url
- gitでのソフト開発メモ
- GitHubメモ
- GitHubと連携できるツール
- Markdownメモ
- gitでタブ補完を使うようにする
- git初期設定
- Githubでpush時にログイン名とパスワードを毎回入力しないようにする
- READEME用にコンソール画面のgif動画を作る
- プルリクエストの仕方
- github-pagesの作り方
- 参考資料
- MyEnigma Supporters
はじめに
あくまでも個人的なGit & GitHubの使い方メモです。
gitコマンドメモ
git status
今のリポジトリの状況を調べる
git commit -a
修正したファイルを自動認識してコミットする
git commit --amend 一つ前のコミットメッセージを修正
git commit -v
コミットする時に、変更ファイルだけでなく、diffの結果も表示する。
git commit -m "bug fix"
コミット時のコメントを指定してコミット
git log
過去のコミットログを確認
git log -- pretty=short
コミットログの最初の一行目だけを表示
git log file
特定のファイルのログのみを表示
git log -p
ログの差分も一緒に確認
git log --graph
ブランチの状態を可視化するコマンド
git reflog
これまでのリポジトリの変化を確認
git diff
変更差分を確認する(commit する前に確認する癖をつけること)
git branch
ブランチの一覧を表示(*は現在のブランチ) -aでリモートリポジトリも含む
git branch -D feature
featureブランチを削除する
git checkout -b hoge
hogeという新しいブランチを作る
git checkout master
masterブランチに移動
git checkout -
一つ前のブランチに移動
git merge --no-ff hoge
今いるブランチとhogeブランチをメッセージ付きでマージする
git reset --hard
hash値 リポジトリをhash値の状態まで戻すor進める.
hash値はgit log や git reflogで見れる
git rebase -i HEAD~2
HEADから2コミット分の履歴が表示され、
その中のpickをfixupと変更すると、そのコミットを無かったことにできる。
git remote add origin https://hogehoge.git
originという名前でURLのリポジトリを登録
git push -u origin master
masterブランチの内容をoriginリポジトリに送信する。
-uを付けることにより、
masterブランチの元がoriginブランチであることが設定され、
pullした時に自動的にoriginから引っ張ってくるようになる
git clone https://github.com/hogehoge.git
リモートリポジトリをローカルにもってくる
git submodule add https://github.com/url
あるgitリポジトリの中で、
別のgitリポジトリのライブラリを利用したい時は、
submodule機能を使うと良いです。
submoduleコマンドでリポジトリをチェックアウトすると、
submoduleを含めて、クローンしたい場合は、
下記のコマンドで実現可能です。
>$ git clone --recursive git://github.com/foo/bar.git
すでにクローンしたリポジトリで、
submoduleのリポジトリもクローンしたい場合は、
下記のコマンドでアップデートできます。
>$ git submodule update --init --recursive
gitでのソフト開発メモ
トピックブランチ
gitを使ったソフト開発では、一つの機能毎にブランチを作成し、
完成したらmasterにマージするようにする
これにより、誰でもいつでも安全にmasterブランチを引っ張ってこれる。
masterはいつでも他人に見せられるようになっているようにする
GitHubメモ
ショートカット一覧表示: Shift+/
リポジトリ内でtを押すと、ファイルを検索できる
Issueをコミットでcloseする場合は close #01のように書く #00はIssue番号
Pull Requestは自分で変更したコードを
相手のリポジトリに取り込んでもらえるように依頼するための機能
他人のコメントを引用したい場合は、選んでrを押す.
コメントで絵文字を使う場合はコロン:を入力すると補完される
Wikiで_sidebarというページを作るとサイドバーを追加できる。
pull requestを送るにはbranchの左の緑色のボタンを押す
GitHubのリポジトリをSubversionのリポジトリとして利用することは可能
svn checkout https://github.com/ユーザ名/リポジトリ名
GitHubと連携できるツール
Travis CI
オープンソースコミュニティ向けのCIを無料でホストしてくれるサービス
Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community
Markdownメモ
タスクリスト記法
#来週まで
- [ ] コミット
- [x] リファクタリング
- [ ] レビュー
gitでタブ補完を使うようにする
下記の方法を実行するとgitのコマンドがbash上でタブ補完されるようになります
1.下記のコマンドでgit-completion.bachというファイルを探す
sudo find / -name git-completion.bash
自分のmacの場合はここにありました。
/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
2. このファイルをホームにドットファイルとしてコピーする
macの場合
cp /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash ~/.git-completion.bash
3 bashの設定ファイルにsource ~/.git-completion.bashを追加する
macの場合
/.bash_profileに追加
4 git confまで入力して、tabキーでconfigが補完されればOK
git初期設定
名前とEmailの設定
(日本語は使用しないほうが良いです)
git config --global user.name "Firstname Lastname"
git config --global user.email "hoge@gmail.com"
コマンドを読みやすくするための設定
下記のコマンドを実行すると、
gitのコマンド結果がカラーになって読みやすくなります。
git config --global color.ui auto
コミットログのエディタをvimにする
下記を設定する
git config --global core.editor 'vim -c "set fenc=utf-8"'
Githubでpush時にログイン名とパスワードを毎回入力しないようにする
毎回pushする時にログイン名とパスワードを入力するのは
人生の無駄なので設定します。
1. sshの公開鍵をGithubに登録
基本はこちらのリンク通りやればOK
GitHubの初期設定(SSH接続からリポジトリへのpushまで) - Qiita
2. リポジトリのURLを設定
git remote -v
して、下記みたいにhttpsという文字が含まれていたら、
origin https://github.com/AtsushiSakai/comfortablecpp.vim.git (fetch)
origin https://github.com/AtsushiSakai/comfortablecpp.vim.git (push)
下記のように
git remote set-url origin git@github.com:AtsushiSakai/comfortablecpp.vim.git
設定しなおす。
GitHubにpushする度にusername/passwordを求められるとき - Qiita
READEME用にコンソール画面のgif動画を作る
コンソール画面で使うようなツールの場合、
コンソール画面のgif動画を作ってアップすると
使い方が分かりやすくて便利です。
自分はttygifというツールを使っています。
Terminal - ttygifでターミナルを録画してgifにする - Qiita
下記の通り動画を作れます。
ttyrec rec_name
./ttygif rec_name
./concat_osx.sh output.gif
動画を作る時にコンソールのウインドウを
ディスプレイ一杯の大きさにしておくと、
githubのREADMEに貼った時に大きすぎるので、
ウインドウを小さくしてから撮影しましょう。
プルリクエストの仕方
下記を参照
GitHubへpull requestする際のベストプラクティス - hnwの日記
初心者向けGithubへのPullRequest方法 - Qiita
プルリクエストを更新しろと言われた時
[一度送ったプルリクエストを修正する - Web Application Security Memo](http://www.pupha.net/archives/2451/)
github-pagesの作り方
1. リポジトリを作る
2. gh-pagesというブランチを作る
3. リポジトリをクローンする
git clone -b gh-pages https://github.com/AtsushiSakai/JapanQuest.git JapanQuest
4. トップディレクトリにindex.htmlを置いて、commit & push