大约一个月前,我克隆了一个远程git存储库。远程存储库经历了许多更改,现在变得不稳定了。现在我需要存储库的另一个副本,与我一个月前克隆的版本相同。
我怎么做呢?
大约一个月前,我克隆了一个远程git存储库。远程存储库经历了许多更改,现在变得不稳定了。现在我需要存储库的另一个副本,与我一个月前克隆的版本相同。
我怎么做呢?
当前回答
你可以“重置”你的存储库到任何你想要的提交(例如1个月前)。
使用git-reset:
git clone [remote_address_here] my_repo
cd my_repo
git reset --hard [ENTER HERE THE COMMIT HASH YOU WANT]
其他回答
你可以“重置”你的存储库到任何你想要的提交(例如1个月前)。
使用git-reset:
git clone [remote_address_here] my_repo
cd my_repo
git reset --hard [ENTER HERE THE COMMIT HASH YOU WANT]
你可以简单地使用
git checkout commithash
在这个序列中
git clone `URLTORepository`
cd `into your cloned folder`
git checkout commithash
提交哈希看起来像这样“45ef55ac20ce2389c9180658fdba35f4a663d204”
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"
如果你需要获取的版本不是分支就是标签,那么:
git clone -b branch_or_tag_name repo_address_or_path
也许git重置可以解决你的问题。
git reset --hard -#commit hash-