私の要件は、マスターリポジトリから特定のフォルダーのファイルのみをプルおよびプッシュすることです。私が使用している方法は、特定のフォルダーのファイルをプルするのに役立つだけで、プッシュするのには役立ちません。
したがって、私のマスターリポジトリには、以下のようなフォルダー構造があります。
mainfolder
examfold1
examfold2
examfold3
これが私がしていることです。
git clone http://123456@onestash-test.com/mainfolder
cd mainfolder
git config core.sparseCheckout true
echo examfold3/*> .git/info/sparse-checkout
これはプルすると正常に機能しますが、他のフォルダーにファイルを持ち込むことはありませんが、examfold3 のファイルも持ち込まず、ローカルリポジトリからいくつかのファイルを変更した後にプッシュするとエラーが発生します。
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'http://123456@onestash-test.com/mainfolder'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
他のフォルダーのファイルをプルしなかったため、ローカルリポジトリがマスターと同期していないとgitが考えていると思います。どんな助けでも本当に感謝します。前もって感謝します。