gitコマンドメモ

git Git

参画したプロジェクトでは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できるようになっているはず。。。

とりあえず説明用としてココまで