【Git】開発用ブランチからマスターにマージする

以下の記事を参考にして進める

[Git] 基礎 ~master反映まで~

変更を一時的に退避しよう!git stashを使いこなす5つのステップ

マージするファイルはリモートブランチにプッシュされているものとする

まずはgit管理してるファイルの状態を確認

$ git status
# On branch bugfix/hogehoge
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   development.py
#       modified:   production.py
#       modified:   hogehoge/settings.py
#       modified:   hogehoge/urls.py
#       modified:   script/env_setting.sh
#       modified:   uwsgi_dev.ini
#

上記のファイルは設定ファイル系なのでgit管理したくないため、以下のページを参考にして.gitignoreに登録することを考える

git ignoreを使ってファイルを無視する方法【初心者向け】

.gitignoreファイルに該当のファイルを追記して、git statusを入力したが変更リストに出てきてしまう

以下の記事のようにキャッシュが原因かもしれないと思った

.gitignoreに記載したのに反映されない件

以下実行

$ git rm -r --cache

再度確認してみたが変わらず

とりあえずstashというのを使って変更を一時退避させた

以下の記事を参考

変更を一時的に退避しよう!git stashを使いこなす5つのステップ

以下実行

$ git stash save “任意のメッセージ”

これでgit statusと入力しても変更ファイルは表示されなくなった

さてmasterブランチへマージしよう

$ git checkout master
$ git status

$ git diff --name-status master hoge_branch # 開発用ブランチとローカルmasterブランチの差分を確認

$ git fetch                #リモートの更新内容を取得
$ git merge origin/master  #取得した更新内容をローカルに反映

$ git merge master hoge_branch # ローカルmasterブランチへ作業ブランチの内容を取り込む

$ git push origin master:master # リモートmasterブランチにpush

# 本番環境に入ってpullする
# git pull

masterブランチのログを見て、反映されているのが確認できたのでおk

stashしてあったファイルをもとに戻す必要があるならもとに戻しておこう

なお、普通は.gitignoreで管理するように

また、本番環境でマージされたものをpullして反映したがもとに戻したいときもあると思う

そんなときの対応も書いておく

 

以下の記事参考

git pullの取り消し

[Git]コミットの取り消し、打ち消し、上書き

 

# pullの取り消し
$ git reset --hard HEAD^

# もし過去のコミットをなしにしたい場合(マージもとのブランチでこれをやっても良い)
git revert コミットのハッシュ値

シェアする

  • このエントリーをはてなブックマークに追加

フォローする