【问题标题】:checkout to first commit on the branch and clone the repository签出以首先提交分支并克隆存储库
【发布时间】:2019-11-19 15:32:29
【问题描述】:

我正在尝试克隆最近的状态(提交)和分支的初始状态,并比较存储库。

我已经克隆了最近的提交。

如何克隆分支的初始提交?

56557bc   Project Created New Repo    2019‑04‑09

我这里有这个字符串,我猜它是提交哈希:

https://bitbucket.org/xya/react-native/commits/56557bc9621b7d6e510c51be337fbc5800b65838

我应该git checkout 56557bc9621b7d6e510c51be337fbc5800b65838 然后克隆初始存储库吗?

这会妨碍我最近的提交吗?

【问题讨论】:

  • 您通常不会克隆提交,而是克隆整个存储库。请包括您已经尝试过的 Git 命令,这导致了您的问题。
  • @TimBiegeleisen 是的.. 我的意思是一样的.. 克隆整个“初始”存储库。但我不知道该怎么做。

标签: git git-branch git-commit git-clone


【解决方案1】:

我这里有这个字符串,我猜它是提交哈希:

您不必猜测:如果您在该提交的网页上看到它没有父提交,则它是存储库的第一个提交(除非它是孤立分支,但如果它是 master 的一部分,很有可能,它确实是你想要的)

我正在尝试克隆最新状态(提交)和分支的初始状态,并比较存储库。

首先克隆 repo。

然后使用 git worktree 命令:您将能够获得第二个文件夹,其中包含您想要的提交内容,无需第二次克隆。

cd /path/to/repo
git checkout -b first <yourFirstCommit>
git checkout master
git worktree add ../first first
cd ../first

【讨论】:

  • git worktree add ../first firstfatal: 'first' is already checked out at 'C:/xampp/htdocs/repo'
  • @Azima 是的,我错过了中间结帐:请参阅我编辑的答案。
【解决方案2】:

首先通过git log查看您的日志。

然后获取目标提交的哈希码。

然后git checkout &lt;commit hash&gt;

【讨论】:

  • 当有人从 git 克隆一个项目时,该人克隆整个项目。克隆整个项目后,您可以检查其他提交、分支和很多东西。 现在言归正传: 仔细阅读:在做任何checkout之前,首先检查git status状态,然后添加到存储中本地git add . 之后进行简单的提交git commit -m "Your comment about commit" 现在再次检查git status 的状态。如果没有显示任何提交显示并且工作目录显示干净,那么您可以毫无风险地进行进一步的工作
  • 如果将来发生任何问题,那么您将能够返回到您现在所做的最近提交。因此,在进行任何更改之前,请随时commitcheckout 或此类工作。 另一件事,不用担心哈希字符串。只需检查日志“git log”。你会发现你的哈希字符串。
猜你喜欢
  • 2013-11-06
  • 2012-05-03
  • 2013-06-04
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 2020-11-16
相关资源
最近更新 更多