サイトアイコン 上尾市のWEBプログラマーによるブログ

「いちばんやさしいGit&GitHubの教本」の感想・備忘録2

「いちばんやさしいGit&GitHubの教本」の感想・忘備録1の続き

ブランチ作成

git branch firstBranch
xxx.xxを編集しgit add xxx.xx
git commit xxx.xx
git diff master

プッシュ

git push origin ブランチ名

GitHubでのプルリクエストの作成

GitHub⇒Compare & pull request
マージ先、マージ元、reviewerを選択する。

reviewerはGitHub⇒Settingsタブ⇒Collaborators、で追加されたアカウントのみ指定可能。
Collaboratorsにはpushする権限が与えられる。
※forkしてリポジトリを作成した場合は、マージ先がデフォルトでfork元になっているので注意

GitHubのレビュー機能

GitHubのレビュー機能では、行にコメントをつけるとStart a reviewボタンが表示される。
2件目以降はAdd review commentに変わる。
入力したコメントはFinish your reviewやReview changesをクリックするまでは公開されないので注意。

Review changesクリック後、承認であればApproveを選択する。
Commentは承認せずにコメントを付けるだけ、Request changesは承認せずに修正依頼する場合に選択する。

マージ(GitHub上)

GitHubのプルリクエスト画面でmerge pull requestをクリックするだけ。
3種類のマージ方法があるが、通常はCreate a merge commitを選択する。

プルとフェッチ

git pull origin ブランチ名
git fetch origin

プルとフェッチの違いは、ワークツリーの内容が変更されるかどうか。
プルはワークツリーが変更される。
(プル=フェッチ+ワークツリーへのマージ)
フェッチはローカルリポジトリへの取得のみ。

リモートにしか存在しないブランチの取得

リモートにしかないブランチを取得したい場合は、フェッチをしてからチェックアウトするとローカルにブランチが作成される。
git fetch origin
git checkout ブランチ名

ブランチ作成とチェックアウトを同時に行うコマンド

git checkout 元のブランチ名(GitHub flowの場合はmaster)
git checkout -b ブランチ名

全てをgit add

git add -A

マージ(コマンド)

git checkout ブランチ名
git merge master

ステージングへの追加と同時にコミット

git commit -a
対象となるのはGit管理下に置かれているファイルのみ。 一度もgit addしていないファイルはコミットされないので注意。

ブランチの削除

まだマージしていないローカルリポジトリを削除する場合は git branch -D ブランチ名とする必要があるが、基本的にはマージしたブランチを削除するべき。

コンフリクトの対処

  1. ファイルを修正してgit add xxx.xxまたはgit add -A
  2. git commit
  3. git push origin ブランチ名

2つのトピックブランチを作成し、masterへマージする例

git checkout master
git checkout -b branch-a
// ファイルを編集
git add -A
git commit -m "modify branch-a"
git push origin branch-a
git checkout master
git checkout -b branch-b
// ファイルを編集
git add -A
git commit -m "modify branch-b"
git push origin branch-b
// 例えば、この後branch-bを先にプルリクエスト⇒マージし、branch-aではさらに修正作業が必要な場合
git checkout master
git pull origin master
git checkout branch-a
git merge master
モバイルバージョンを終了