You cannot just git checkout -fbecause this means that repo1 flushes its contents on the repo2 working tree:
GIT_WORK_TREE=/path/to/repo2 git checkout -f
repo2, repo1, (repo2) .
, , repo2 , , repo2 .
GIT_DIR=/path/to/repo2/.git
GIT_WORK_TREE=/path/to/repo2 git pull repo1