ブランチの作成
ブランチの作成コマンドの説明です。
**注意 ブランチを作成しただけではブランチを変更したわけではないことに注意してください。
*ブランチの作成
git branch <ブランチ名>
*ブランチの一覧表示
git branch
-aオプションをつけるとリモートリポジトリのブランチも表示してくれます。
*ブランチの詳細
git log --oneline --decorate
*ブランチ切り替え
git checkout<既存ブランチ名>
ブランチ操作でよく使うコマンド
*ブランチを新規作成して切り替える場合
git checkout -b <ブランチ名>
全てのブランチをpushする
ローカルリポジトリで管理していたブランチを全てまとめてpushする方法です。
git push --all origin
マージについて
マージには3つの種類があります。
- Fast Forward:早送りになるマージ〜枝分かれしても親が一つです。
もし、ブランチが枝分かれしてなかった場合はブランチのポイントを前に進めるだけです。 - Auto Merge:基本的なマージ〜枝分かれして親が複数あるものです。
基本的なマージ、枝分かれして開発していた場合、マージコミットという新しいコミットを作ります。 - コンフリクト:同じ場所を修正したりすると起こります。なんらか手動での対応が必要です。
*ローカルリポジトリのブランチをマージ
git merge <ブランチ名>
*リモートリポジトリのブランチとマージ
git merge <リモート名/ブランチ名>
コンフリクト
同じファイルに異なる編集を行ったら起こります。
コンフリクトについてはこちらを参考にしてください。
コンフリクト関連の事故を減らすルール
- 複数人で同じファイルを変更しない決め事をしておく事
- pullやmaergeする前に変更中の状態を無くしておく(commitしておく)事
- pullするときは、pullするブランチに移動してからpullする事
*ブランチ名の変更
git branch -m <ブランチ名>
*ブランチ名の削除
git branch -d <ブランチ名> #強制削除 git branch -D <ブランチ名>
Pull request
開発用のbranchを例えばtask1とするなら、そのタスクが完了して、リモートリポジトリのorigin masterに取り込ませたい場合、Pull requestを送ります。
手順
- リモートリポジトリになるorigin task1にpushします。
- pull requestsタブから表示されるリクエスト欄にリクエストします。
- レビューアーがレビューします。
- レビューに問題ありとなった場合、再度問題修正して再度pushして再びPull requestします。
- 問題がなくなったら、レビュアーはmergedボタンでmasterとマージします。
- masterをpullでローカルに取り込みます。
- task1を削除します。
git branch -d task1
リベース
リベースは概ねマージと同じことをします。つまり枝分かれしたブランチを取り込むのですが、大きく異なる点としてリベースは枝分かれをなくして一本の履歴にしてしまいます。マージは枝分かれの履歴をそのまま残すものです。
git rebase <ブランチ名>
用途としてはマージは枝分かれの履歴を残したいときに使い、リベースは枝分かれの履歴が不要で綺麗な一本の履歴にしたいときに使います。
具体的な方法
目的はマスターに統合したいとします。
- まず、ブランチした方からマスターをリベースします。
- 次に、マスターに戻りマージします。
一時避難
stageingした作業やその前の変更を一時避難することができる。
そして別のブランチなどに移動できる。
git stash
stashしたものを確認
git stash list
避難した作業を復元
git stash apply
ステージの状況を復元する場合
git stash apply --index
`git stash list`で確認した特定の作業を復元する方法
例
“`
git stash apply stash@{1}
“`
コミットの取り消し
「git reset」はコミット履歴を遡り無かったことにします。
注意:無かったことにした後にそれを戻すことはできません。
*ステージングから外す方法
git reset <file>
このコマンドはステージングエリアに追加したファイルをステージングエリアから削除します。「git add」の取り消しと考えると良いでしょう。
ただし、ファイルへの変更はそのままの状態です。あくまでもステージングエリアから外しただけです。
*ステージングから外し、ファイル変更も元に戻すコマンド。
git reset --hard
このコマンドはステージングエリアに追加したファイルをステージングエリアから削除し、尚且つファイルの変更も元に戻します。
*指定したコミットの状態まで戻す。
git reset <commit ID>
現在のブランチの位置を指定した
ただし、ワーキングエリア内の変更はそのまま保持されます。
これは無駄に付けたコミットをまとめるときに便利です。
直前のコミットを修正
さらに、コミット内容を変更したい場合は「git commit –amend」を使います。
git commit -m "修正内容"
*指定したコミットの状態まで戻し、ファイル変更も元に戻す。
git reset --hard <commit ID>
現在のブランチの位置を指定した
尚且つ、ワーキングエリア内の状態もその段階まで戻します。
Gitのブランチなどの履歴をグラフィカルに表示
Gitのブランチなどの履歴をグラフィカルに表示してくれます。
SourceTreeのような枝分かれの表示が直感的にわかりやすい。
これはあらかじめ`$HOME/.gitconfig `に次の記述を追加します。
[Tex]
[alias]
graph = log –graph –date-order -C -M –pretty=format:\”<%h> %ad [%an] %Cgreen%d%Creset %s\” –all –date=short
[/Tex]
コマンドは次の通りです。
git graph