답변:
uploadpack.allowReachableSHA1InWant
Git 2.5.0 부터 서버에서이 구성 변수를 사용할 수 있습니다. 여기에서 GitHub 기능 요청 및 이 기능을 사용 하는 GitHub 커밋이 가능합니다 .
Bitbucket Server는 버전 5.5 이상부터 활성화했습니다 .
용법:
# Make remote with 4 commits, and local with just one.
mkdir server
cd server
git init
touch 1
git add 1
git commit -m 1
git clone ./ ../local
for i in {2..4}; do
touch "$i"
git add "$i"
git commit -m "$i"
done
# Before last commit.
SHA3="$(git log --format='%H' --skip=1 -n1)"
# Last commit.
SHA4="$(git log --format='%H' -n1)"
# Failing control without feature.
cd ../local
# Does not give an error, but does not fetch either.
git fetch origin "$SHA3"
# Error.
git checkout "$SHA3"
# Enable the feature.
cd ../server
git config uploadpack.allowReachableSHA1InWant true
# Now it works.
cd ../local
git fetch origin "$SHA3"
git checkout "$SHA3"
# Error.
git checkout "$SHA4"
A가 있습니다
git pull
git checkout my-old-commit
지금은 분리 된 HEAD 상태에서 당신을 잎 - 효율적으로 새 커밋 경로 아래로이 저장소에 미래의 커밋을 보내는. 배포 리포지토리의 경우 커밋 만 풀기 전에 커밋 만 커밋해야하므로 큰 문제는 아닙니다.
그러나 커밋 마커 (헤드, 태그, 원격)가 마스터 리포지토리와 동일한 지 확인하는 것이 유용한 경우가 있습니다. 체크 아웃 후이 문제를 해결하려면 :
git reset
-헤드를 다시 연결합니다
git fetch
.-리모콘의 마커를 동기화합니다 (git 버전에 따라 다를 수 있음-환경은 여전히 1.7에 있습니다. 따라서 더 이상 YMMV가 필요하지 않을 수 있습니다)
git pull server:repo
일반 대git pull
)