以下の記事を参考にして進める
・変更を一時的に退避しよう!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を入力したが変更リストに出てきてしまう
以下の記事のようにキャッシュが原因かもしれないと思った
以下実行
$ 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して反映したがもとに戻したいときもあると思う
そんなときの対応も書いておく
以下の記事参考
# pullの取り消し
$ git reset --hard HEAD^
# もし過去のコミットをなしにしたい場合(マージもとのブランチでこれをやっても良い)
git revert コミットのハッシュ値
コメント