Gitよく使うコマンドやら操作メモ¶
今回はGitLabを使用して、Gitの基本的なフローについてメモしておきます。
おおむね自分用のメモ。
http://remi-saba.net:30000/testGroup/gitTest
テストに使うのはこのリポジトリ。
GitLabは、自分で作ったリポジトリを自分でフォークすることは出来ないので
まずはGroupを作成し、そのGroup下にフォーク元のリポジトリを作成します。
フォークする¶
まずはフォーク。
フォーク元リポジトリのForkボタンをクリックして
自分のアカウントをクリック。
そうすると、指定のリポジトリをフォークすることができます。
以降は、まずフォークしたリポジトリに対してデータをアップしていきます。
基本的な操作¶
現在のブランチを確認する¶
1 |
|
ブランチを作る¶
1 |
|
ブランチを切り替える¶
1 |
|
checkout ##### で、指定した名前のブランチに切り替わる。
切り替えるときに、現在のブランチに編集済のファイルが存在する場合は
エラーになってしまうので、コミットするかStash(一時退避場所)に逃がしておく必要がある。
Stash(一時退避場所)にアップする¶
1 |
|
一時的に逃がす場合はStashに入れる。
コミット~プッシュする¶
編集結果をGitのリモートリポジトリにアップする
1 2 3 |
|
アップするには、まず add を使用して「変更した」というフラグを立てる。
そしてアップ対象をセットしたら、 commit で、ローカルリポジトリにコミットする。
-m で、コメントを記入する。
最後にリモートリポジトリにPushする。
Pushするときのコマンドは git push -u ローカルリポジトリのBranch名 リモートリポジトリのBranch名
のようにする。
-u は、リモートリポジトリに街灯のブランチが存在しない場合は自動で作るというフラグ。
実行すると、無事リモートリポジトリに適応された。
プルリクを作る¶
フォークしたリポジトリの変更内容を、フォーク元に対してマージするために
プルリクを作成します。
フォークしたページにある「Merge Requests」をクリックして
New Merge Request を押します。
SourceBranchには、フォークしたリポジトリとブランチを指定し
ターゲットブランチにはフォーク元のリポジトリとマージしたいブランチを指定します。
あとはコメントを記入して Submit merge Request を押します。
マージする¶
プルリクが作成されると、Group側にリクエストが追加されます。
ここでコードレビューを行い、問題がなければマージを押します。
マージされたGroupのリポジトリをFork先にマージする¶
Groupに自分のプルリクがマージされたら、その結果を自分のForkしたリポジトリに適応します。
1 |
|
まずはmasterブランチに切り替えて
1 |
|
remoteに、Group側のURLを追加します。
追加すると、Remoteに upstream が追加されます。
1 |
|
追加したリモートをFetchして
1 2 |
|
upstreamのmasterを自分のmasterにマージします。
変更内容が取り込まれました。
めでたしめでたし。
GUIを使用する¶
コミットやPushは、コマンドでやるとステージするのが面倒だったり
コメントを日本語で入れるのが面倒だったりするので、
GUIを使用します。
1 |
|
addするのとかはコマンドでやるのは地味にめんどくさいけど、GUIならわりと楽。
UnstagedChangesにファイルがある状態で「Stage Changed」するとコミットできる状態になるので
コメントを記入してCommitする。
あとはPushすればおしまい。
編集履歴を確認する¶
VisualizeAllBranchHistoryで、変更を確認できる。
ローカルブランチをマージする¶
ローカルブランチで、別ブランチを切った状態で作業しているときに
ほかのブランチをマージしたい場合は、とりこみ先でチェックアウトをして
1 |
|
これで、リポジトリを現在のブランチにマージすることができる。
ローカルリポジトリとリモートリポジトリで衝突した場合¶
衝突してしまったら、まずローカル側を逃がしてからPullしてマージする。
1 2 |
|
まず、現在の編集情報をStashに逃がす。
1 |
|
そしてリモートの状態をPullして最新の状態にする
1 |
|
Stashに入れてた内容を元に戻す。
取り出したらコンフリクトが発生するので、必要に応じてマージしてからコミットする。
マージ処理はわりと自動でやってくれる。
してくれないばあいは自力で編集する。