読者です 読者をやめる 読者になる 読者になる

MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

個人的 Git & GitHubメモ

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

はじめに

あくまでも個人的な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でのソフト開発メモ

トピックブランチ

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と連携できるツール

Hub

Gitを拡張して、コマンドライン上でGitHubを操作できるツール

github/hub

Travis CI

オープンソースコミュニティ向けのCIを無料でホストしてくれるサービス

Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community

Coveralls

CIツールによる自動テストカバー率のレポートを作成してくれるサービス

Coveralls - Test Coverage History & Statistics

Jenkins

代表的なCIサーバ

Jenkins - 日本語 - Jenkins Wiki

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