現時点で使用しているセットアップは次のとおりです。
フック 1 HUB リポジトリで更新後のフックを使用します。そのため、他のクローンによって HUB にプッシュが行われると、HOOK がアクティブになり、HEAD ポインターの配置に従って、開発またはマスターの対応する WORKING DIRECTORY にアクセスし、そこから次のいずれかを行います。ハブから開発ブランチにプルするか、ハブからマスター ブランチにプルします。
という~/private/repos/projectname_hub.git/hooks
名前のファイルを作成しpost-update
pico post-update
、次の内容を内部に配置します。
#!/bin/sh
echo
echo "**** Pulling changes into Dev [Hub's post-update hook]"
echo
case " $1 " in
*'refs/heads/dev'*)
cd /home/user/www/dev/ || exit
unset GIT_DIR
git pull hub dev
echo
echo "Dev was pulled"
echo
;;
esac
case " $1 " in
*'refs/heads/master'*)
cd /home/user/www/www/ || exit
unset GIT_DIR
git pull hub master
echo
echo "Master was pulled"
echo
;;
esac
exec git-update-server-info
フック 2 履歴の競合を防ぐために、何らかの理由で実稼働サーバーに直接コミットする場合、プライム マスター コミットが発生するたびに、コミットされた変更を HUB にプッシュします。
という~/www/www/.git/hooks
名前のファイルを作成するときpost-commit
pico post-commit
#!/bin/sh
echo
echo "**** pushing changes to Hub [Prime's post-commit hook]"
echo
git push hub
上記のセットアップでは、「すべてが最新です」と表示されているマスターに物事をプッシュした可能性がありますが、そうではありません。
明らかに、追加およびコミットされたすべてのファイル。
そのため、いくつかの助けを借りて、問題はフックのセットアップにあることがわかりました。
post-update
フックで使用する代わりに、次のように言われましたgit pull hub master
:
git fetch hub && git reset --hard hub/master
私の質問は次のとおりです。誰かが必要な説明を提供してもらえますかgit pull hub dev
?git pull hub master
はい、私は git の使用に関してまったく新しいので、少なくとも理解せずに上記をブラインド コピー ペーストしたくありません。誰かが数行落としてくれれば、本当にありがたいです。
更新:これを行うgit branch -a
と、次のようになります。
* master
remotes/hub/dev
remotes/hub/master
前もって感謝します。