参画したプロジェクトではGitLab
を使用していたがあまり詳しくない人のために開発フローに沿ってコマンドを解説していくための説明用
リポジトリのダウンロード(クローン)
すでにリポジトリが作成されており、開発者として参画した場合
git clone [url]
でリモートのリポジトリをクローンする
$ mkdir git_work # リポジトリをクローンするためのディレクトリ作成
$ cd git_work # 作成したディレクトリに移動
$ git clone git@xxxxx.git # sshの場合
$ git clone https://xxxxx.git # httpsの場合
$ cd xxxxx # cloneしたディレクトリに移動
ssh接続かhttps接続かによって、URLの部分を適宜変更して実行
git-flowに則ってdevelop
が次期開発のブランチの場合
現在のブランチを確認するとmaster
のみとなっているのでリポジトリからdevelop
ブランチをチェックアウト
$ git branch
* master
$git checkout -b develop origin/develop
$ git branch
* develop
master
$
開発時
他の人のコミット等が入っているかもしれないので、develop
ブランチを最新にする
$ git checkout develop
* develop
master
$git pull origin develop
From xxxxx
* branch develop -> FETCH_HEAD
Already up-to-date.
$
開発する機能のブランチを作成する
git checkout -b feature/[機能名]
$ git checkout -b feature/login # ログイン機能を作成する場合
Switched to a new branch 'feature/login'
$ git branch
develop
* feature/login
master
$
適宜実装を行い、修正したファイルを確認
$ git status
差分がある場合、ここにファイル名が表示される
$
修正した対象のファイルをインデックスに登録して、コミット
$ git add -p
修正した内容を登録するかどうか対話形式で表示されるので、
修正した箇所なら「y」、意図していない修正の場合「n」で選択
$ git commit -m "コミットメッセージ"
コミットメッセージは後で見返したときに何を修正したのかあたりをつけられるように入力しておくと良いかな。
コミットまで完了したらリモートにプッシュ
$ git push origin feature/login
developへのmerge
GitLabの画面でmerge requestを作成
コンフリクトが出ていなければそのままmerge
コンフリクトが出ている場合
$ git fetch -p
$ git merge develop
$ git status
コンフリクトしているファイルが表示されるので、コンフリクト箇所を丁寧に手動merge
修正完了したら
$ git add -p
$ git push origin feature/login
これでGitLabの画面からmergeできるようになっているはず。。。
とりあえず説明用としてココまで