我需要从GitHub下载Facebook API 。通常,我只是单击“下载”选项卡以下载最新的源代码。在这种情况下,我需要一个较旧的提交:91f256424531030aa454548693c3a6ca49ca3f35a,但我不知道如何从该提交中获取整个项目...
有人可以告诉我该怎么做吗?
(顺便说一句,在Mac上是即时消息。不知道那有什么区别)。
我需要从GitHub下载Facebook API 。通常,我只是单击“下载”选项卡以下载最新的源代码。在这种情况下,我需要一个较旧的提交:91f256424531030aa454548693c3a6ca49ca3f35a,但我不知道如何从该提交中获取整个项目...
有人可以告诉我该怎么做吗?
(顺便说一句,在Mac上是即时消息。不知道那有什么区别)。
Answers:
首先,使用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
可以只需要文件。
git checkout -q <commit#>
在git checkout期间使警告stderr静音。
我不知道您发布此问题时它是否在那里,但是下载提交的最佳和最简便的方法是在查看存储库时单击“ 提交”选项卡。然后,不要单击提交名称,而要单击提交名称/消息右侧带有<>符号的“历史记录”按钮,然后单击“ 浏览存储库”,最后单击“ 克隆”或 “ 下载”按钮。下载按钮。
希望对您有帮助。
git reflog
,然后检出分离的提交
我发现恢复丢失的提交(仅存在于github而不是本地)的最简单方法是创建一个包含此提交的新分支。
git pull
新分支到本地问题标题不明确。
除了可接受的答案之外:
要查看散列,您需要使用建议的命令“ git checkout hash ”,您可以使用git log
。但是,根据您的需要,有一种比复制/粘贴哈希更简单的方法。
您可以git log --oneline
用来阅读更多压缩格式的提交消息。
假设您看到的是提交的单行列表,其中包含最少的信息并且仅部分可见的哈希值:
hash111 (HEAD -> master, origin/master, origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....
如果需要last commit
,可以使用git checkout master^
。这样就可以在主机之前^
提交提交。所以。hash222
如果您想要第n次提交,可以使用git checkout master~n
。例如,使用git checkout master~2
将为您提供commit hash333
。
除了浏览提交,您还可以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
。
如果要进行任何特定的提交或要对任何特定的提交进行编码,则可以使用以下命令:
git checkout <BRANCH_NAME>
git reset --hard <commit ID which code you want>
git push --force
例:
git reset --hard fbee9dd
git push --force