2016-03-25 18 views
0

私はメインWebサーバーとローカルgitリポジトリにレポを持っています。そこでローカルマシン上のいくつかのファイルを変更し、ローカルのrepoにコミットしてから、Webサーバー上のリモートrepoにプッシュします。しかし、web-serverのwork-directoryのファイルは変更されません。今私はコマンド "git reset -hard"を使用しますが、正しくはないと思います。どのようにローカルリポジトリから作業ディレクトリに変更したのですか?ローカルgitリポジトリから作業ディレクトリへの変更を適用するには?

+0

をあなたは戸建の頭の中で変化を推進していますか?マスターの – KR29

+0

...... –

答えて

0

私は、GIT v.2.3.0 +でプッシュツーデプロイメントがうまく機能しています。

だから、あなただけの設定gitの必要があります。 gitの設定receive.denyCurrentBranch updateInstead

0

git pushを実行すると、リモートワークツリーが変更されずに、リモートのリポジトリだけが変更されるため、通常リモートリポジトリはgit init --bareで作成されます。

リモートワークツリーをgit pushで更新する場合は、受信後のフックを作成してください。

+0

あなたは正しいです。しかし、私は裸のレポを作成する場合、私は作業ディレクトリ内のいくつかのファイルを変更すると更新されますか? –

+0

@DmitryMorozov、裸のレポを作成した場合、リポジトリを伴う作業ディレクトリはありません。リモートサーバーにコードをデプロイする場合は、git v.2.3.0で導入された新機能である 'Push to Deploy'を試すことができます – gzh

+0

これは裸のレポではありません –

0

.git/hooksディレクトリにcdして「post-receive」というファイルを作成します。ファイルに以下のコードをコピーします!

/binに/ bashの

GIT_WORK_TREE = /パス/に/あなた/のhtdocsに/ direcotryのGitチェックアウト

-fこのコードが実行することにより実行可能であることを確認してください chmod + x .git/hooks/post-receive

関連する問題