最近、SVNからGitに切り替え、同時に(ローカルチェックアウトとファイルコピーをライブにではなく)ライブシステムをバージョン管理に入れました。
私が割り当てられているプロジェクトでは、すべて同じリポジトリにアクセスし、変更をすぐgit pull
に反映します。これは、WebデザイナーがVCSに変更をプッシュするために問題が発生します。変更はまだライブではないはずですが、Webテスト環境にある必要があります。
開発者の1人がライブに移行すると、すべての(おそらく未完成の)変更を取得します。
ライブを別のブランチに切り替えて、変更されたものをマージすることを考えましたが、git知識が不足しているため、どうすればよいかわかりません。
私のアイデアは:
- ライブ(
git branch live
)で新しいブランチを作成します。 - 何かがライブになる必要があるたびに
- マスターでのプルの変更(のように:
git checkout master; git pull; git checkout live
) git merge master
- マスターでのプルの変更(のように:
問題は、マスターに切り替えるか、すべてをライブシステムに直接プルすると問題が発生するため、これを回避することです。
これを行う方法はありますか、Liveシステムを管理するより良い方法はありますか(未完成のものをプッシュしないようにwebbieをトレーニングする場合を除く)。
git checkout -f
は問題を無視するために使用します-しかし、バックアップを作成してください!
git pull --all
デフォルトでは、マスターをライブにプルするのではなく、マスターをプルしてマスターとマージし、(サーバー上に存在する場合)ライブにマージしてライブにマージします。やってみた?