我需要从GitHub下载Facebook API。通常,我只需单击“Downloads”选项卡即可下载最新源代码。但在这种情况下,我需要一个旧的提交:91f256424531030a454548693c3a6ca49ca3f35a,但我不知道如何从该提交获取整个项目...
有人可以告诉我如何做吗?
(顺便说一句,我用的是Mac电脑,不知道是否有任何区别)。
我需要从GitHub下载Facebook API。通常,我只需单击“Downloads”选项卡即可下载最新源代码。但在这种情况下,我需要一个旧的提交:91f256424531030a454548693c3a6ca49ca3f35a,但我不知道如何从该提交获取整个项目...
有人可以告诉我如何做吗?
(顺便说一句,我用的是Mac电脑,不知道是否有任何区别)。
首先,使用git克隆存储库,例如:
git clone git://github.com/facebook/facebook-ios-sdk.git
这将下载完整的代码仓库历史记录,这样你就可以切换到任何版本。接下来,进入新克隆的代码仓库:
cd facebook-ios-sdk
使用 git checkout <COMMIT>
命令切换到正确的提交记录:
git checkout 91f25642453
这会给你一个警告,因为你不再处于分支上,而是直接切换到了特定版本。(这被称为“游离 HEAD”状态。)既然你似乎只想使用这个 SDK,而不是积极开发它,那么除非你有兴趣了解 git 的更多工作原理,否则你不需要担心这个问题。
git export
。 - Xeoncrossgit checkout -q <commit#>
在 git checkout 过程中静默警告 stderr。 - Manavalan Gajapathygit clone git://blar
并不会下载完整的历史记录。它只会下载活跃分支的历史记录。这在 Git 中是非常微妙的差别。 - WORMSS我不知道在您发布这个问题时是否有这个选项,但下载提交的最佳和最简单方法是在浏览存储库时单击commits选项卡。然后,不要单击提交名称,而是单击带有<>符号的提交名称/消息右侧的在历史上查看此版本库的位置按钮,最后单击Clone or Download按钮时显示的Download ZIP按钮。
希望能对大家有所帮助。
git reflog
获取 sha,然后检出分离的提交。 - Aaron Brager要仅下载包含7位SHA1短格式的提交,请执行以下操作:
工作示例:
https://github.com/python/cpython/archive/31af650.zip
描述:
`https://github.com/username/projectname/archive/commitshakey.zip`
如果你拥有长哈希键“31af650ee25f65794b75d4dfefed6fe4758781c1”,只需获取前7个字符“31af650”。这是GitHub的默认设置。我发现找回仅仅存在于GitHub上而没有本地备份的遗失提交(commit)最简单的方法是创建一个包含该提交的新分支。
git pull
将新分支下载到本地请尝试以下命令序列:
$ git fetch origin <copy/past commit sha1 here>
$ git checkout FETCH_HEAD
$ git push origin master
除了浏览提交记录外,你也可以按下 y 键 (Github 帮助文档, 键盘快捷键) 来获取当前版本/提交的“永久链接”。
这将把 URL 从 https://github.com/<user>/<repository>
(master / HEAD) 更改为 https://github.com/<user>/<repository>/tree/<commit id>
。
为了下载特定的提交,您需要从该URL重新加载页面,这样 Clone or Download
按钮就会指向 "快照" 的地址 https://github.com/<user>/<repository>/archive/<commit id>.zip
,而不是最新的 https://github.com/<user>/<repository>/archive/master.zip
。
https://github.com/<user>/<repository>/archive/refs/tags<Tag>.zip
。 - SePeF问题标题存在歧义。
git checkout <BRANCH_NAME>
git reset --hard <commit ID which code you want>
git push --force
例子:
git reset --hard fbee9dd
git push --force
git log
。但是,根据您的需求,有一种比复制/粘贴哈希更简单的方法。git log --oneline
以更紧凑的格式阅读许多提交消息。hash111 (HEAD -> master, origin/master, origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....
git checkout master^
。符号^
会给你主分支之前的提交,所以得到的是hash222
。git checkout master~n
。例如,使用git checkout master~2
会给你提交hash333
。