0

私が持っているのは、ローカルリポジトリと2つのリモートリポジトリ(ベアと呼ばれるものbareと、devと呼ばれる非ベアと呼ばれるもの)です。

私が達成しようとしているのは、単純なデプロイメントであり、ベアリポジトリにプッシュすると、開発リポジトリが変更をプルします。

私はベアリポジトリで受信後フックを使用していますが、これは単に次のことを行います:-

cd (path-to-dev-repo)
unset GIT_DIR
git reset --hard HEAD # This is my failed attempt at stopping the merge conflicts
git pull origin master

ローカルリポジトリに変更を加え、開発者がプルしようとしたときにそれらをベアにプッシュすると、次のようになります。-

CONFLICT (add/add): Merge conflict in application/01_sql_schema.sql

ただし、私が行ったファイルの変更はローカルファイルのみです。変更が1か所でしか変更されていないのに、変更を自動的にマージできない理由がわかりません。

どんな助けでも大歓迎です。

編集:代替可能な解決策

2つのベアリポジトリを用意し、フックから目的のフォルダに開発リポジトリをチェックアウトする方がよいでしょうか?

4

2 に答える 2

1

デプロイされたバージョンのリポジトリを使用しているのはなぜですか?

GIT_DIR=path/to/app git checkout -fベアリポジトリからアプリの場所にファイルをチェックアウトするために使用するだけで、このような問題を回避できます。

于 2012-04-14T13:47:52.697 に答える
0

変更を隠して、後でポップしてみてください。

cd (path-to-dev-repo)
unset GIT_DIR
git stash
git pull origin master
git stash pop
于 2012-04-14T12:31:27.617 に答える