Tomcatを再起動するのって他の開発者がいると気を使いますね。
アプリが複数のっているとなおさらです。
そういう時に設定ファイルを変更して再読み込みさせたい、でもTomcat再起動させたくない。
こういう時はweb.xmlのタイムスタンプを更新します。
touch web.xml
これで再読み込みされます。server.xmlのautoDeploy=trueが前提ですが。
xxx##1.0.0.warみたいなwarファイル名を見かけますが、##にはセパレータとしての意味があります。
xxx・・・アプリケーション名
##・・・アプリ名とバージョン番号のセパレータ
1.0.0・・・アプリのバージョン番号
これらのファイルはTomcatのwebappsディレクトリに配置し、デプロイします。
デフォルトのコンテキストパスはアプリケーション名だけになりますが、バージョン管理のために使用される##の後ろの部分は無視されます。
xxx##1.0.0.warの場合、http://localhost:8080/xxxでアクセスできます。
git mergeのイメージをTortoise Gitのログ画面からイメージする。
mainブランチからhogeブランチを生やして何か変更加える。※コンフリクトが発生しないように
mainブランチでも何か変更を加える。※コンフリクトが発生しないように
その時のイメージ。
この状態からhogeブランチをmainブランチにmergeする。
git merge hoge
これすると、以下のようにhogeブランチがmergeされる。
これがmerge。
ちなみにこのmergeを取り消すには「git reset --hard origin/main」で取り消せます。
ローカルなんでresetで取り消す。
では戻ったところでrebaseコマンドしてみる。これは日本語で言うと「付け替え」といった感じ。
git checkout hoge
この状態で、rebaseコマンド実行。
git rebase main
hogeブランチがmainの先頭に付け替えられています。
この状態でhogeを強制的にpushする。(-fオプション)
git push -f origin hoge
そうするとログが以下のようになる。コミット履歴がきれいに1本になった。
ああ、ムズイ。
git pullすると、git fetchしてgit mergeしています。
この際にコンフリクトが発生することがあります。
1ファイルくらいなら解消すればよいですが、コンフリクトが多すぎたりするといったん中止したい場合があります。
そういう場合は、git merge -- abortコマンドを実行します。
git pull(git fetchしてgit merge)した時のコンフリクトです。
この状態でgit merge --abortコマンドを実行します。
一旦git mergeコマンドが取り消されます。
git pullすると「Your local changes to the following files would be overwritten by merge」エラーが出たのでcommitして回避してみます。
git add .
git commit -m "message"
これで再度git pullします。ここで、コンフリクトする場合としない場合があります。
1.コンフリクトしなかった場合は、これでgit pull完了です。
2.コンフリクトした場合、コンフリクトを解決します。
コンフリクトを解決したら、git pull完了です。
コンフリクトの修正をaddしてcommitすれば、リモートにpushまでできます。
git add .
git commit -m "conflict-message"
「git revert コミットハッシュ」コマンドで履歴を残しつつ、リモートにpushしてしまったコミットを取り消すことができます。
git logコマンドやTortoise Gitなどでコミットハッシュを調べます。
こちらのコミットを以下のようにコミットハッシュを指定して取り消します。
git revert a0f60d645fa3ee10be18a9d5b3cd151d4938b2e8
これでRevertされます。ログはこんな感じです。
これで、git push origin mainでリモートプッシュしてあげたら安全にコミット内容を取り消すことができます。
git push origin mainコマンド実行後のログです。