![从 git 构建旧包](https://linux22.com/image/912084/%E4%BB%8E%20git%20%E6%9E%84%E5%BB%BA%E6%97%A7%E5%8C%85.png)
我正在尝试运行旧版本的 xdotool,这是我所做的:
git init
pwd
git checkout edbbb7a8f664ceacbb2cffbe8ee4f5a26b5addc8
但它返回了这个错误:
fatal: reference is not a tree: edbbb7a8f664ceacbb2cffbe8ee4f5a26b5addc8
如何使用 git 正确构建程序的旧版本?
编辑:因此在网上搜索后我发现我需要在末尾添加一个“。”所以就是这样:
git checkout edbbb7a8f664ceacbb2cffbe8ee4f5a26b5addc8.
但现在它给了我这个错误:
error: pathspec '.edbbb7a8f664ceacbb2cffbe8ee4f5a26b5addc8' did not match any file(s) known to git.
答案1
git 应用程序是不是下载 xdotool 的特定修订版本所需。对于 GitHub,您可以使用以下 URL 格式下载具有特定 shasum 的存档:
https://github.com/{username}/{projectname}/archive/{sha}.tar.gz
因此,对于您的需求,以下内容就足够了:
wget https://github.com/jordansissel/xdotool/archive/edbbb7a8f664ceacbb2cffbe8ee4f5a26b5addc8.tar.gz
这应该足以让你开始了:)
参考:
- 如何从 GitHub 下载特定提交 sha 的 .zip?堆栈溢出站点的问题和答案几乎涵盖了这个问题......
答案2
您的计算机上没有该 repo。您需要先下载它,例如使用git clone
:
~$ git clone https://github.com/jordansissel/xdotool.git
~$ cd xdotool
~/xdotool$
然后您可以签出一个提交:
~/xdotool$ git checkout edbbb7a
Note: checking out 'edbbb7a'.
You are in 'detached HEAD' state.
...
HEAD is now at edbbb7a... Add --repeat and --repeat-delay to allow repetition of a
key sequence with an optional delay in between each full sequence.
顺便说一句,如果您需要从分离的 HEAD 返回,命令是git checkout master
。
答案3
如果您想要的版本已被标记,请尝试检出 git 标签或分支。
或者
尝试仅使用提交的一部分进行检出,因此就您而言:
git checkout edbbb7a8
还要重新检查此提交是否确实存在