Py学习  »  Git

当我可以在“git init”之后使用“git pull”执行相同操作时,为什么要使用“git clone”?

Ibrahim Quraish • 5 年前 • 1575 次点击  

我使用 git init 并通过使用 git remote add origin https://remote-url

当我做的时候 git pull origin master 在通过使用 git branch --set-upstream-to=origin/master master 要跟踪远程分支(我的本地主分支设置为在执行此操作后跟踪远程主分支 git checkout master ),我可以将远程项目分支的所有修订历史记录拉到本地repo中。

如果我能很好的处理 git pull ,那为什么 吉特 提供 git clone 作为一个单独的命令和替代?它有什么特别的用途吗?或者我做了错事 吉特拉力 一个人?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47964
 
1575 次点击  
文章 [ 1 ]  |  最新文章 5 年前
torek
Reply   •   1 楼
torek    5 年前

这不是一个不合理的问题。但这个也是:

您可以运行:

git write-tree
git commit-tree -p HEAD -m message <hash-from-git-write-tree>
git branch -f <current-branch> <hash-from-git-commit-tree>

这也一样,如果没有错误的话:

git commit -m message

为什么我们有一个 git commit 完全是命令?

以下是一个后续问题:哪些更易于使用?


这个 git clone 命令实际上相当于运行 命令,其中五个是git命令。涉及的六个步骤 Git克隆 是:

  1. mkdir path ,使新的空目录在其中运行 git init 是的。(在您给出 Git克隆 现有的但空目录的路径名,在这种情况下,它使用。

  2. 初始化 ,以在新目录中创建新的空存储库。

  3. git remote add remote url ,其中 remote 是你的 Git克隆 选项 -o ,或是 origin 如果未指定此选项,则 url 是您在clone命令中指定的。

  4. 任何额外的 git config 提供给的选项中的命令 Git克隆 是的。

  5. git fetch remote ,以从git获取所提供url的提交。

  6. git checkout branch ,其中 branch 是您指定的 -b 你的选择 Git克隆 命令,或由 其他 git如果您没有指定分支,或者 master 如果另一个git没有指定任何分支。

这个 Git克隆 命令还处理在此过程中可能发生的各种错误,否则您必须自己处理这些错误。


这个 git pull 命令等同于运行 git fetch 然后是第二个git命令。第二个命令通常是 git merge ,尽管您可以告诉git使用 git rebase 相反。但是 吉特拉力 还有一个特别的模式:当你 吉特拉力 在一个完全空的存储库中,正如您在问题中所做的,它可以运行 git checkout 作为第二个命令而不是其他两个。


注:与 Git克隆 ,很少需要任何东西 之间 六个步骤 吉特拉力 很常见的是 需要 检查犯下的罪行 Git获取 获得 在我执行第二个命令之前。所以我通常避免 吉特拉力 完全是因为它迫使我选择要运行的第二个命令,并在fetch步骤完成后立即运行它,这时我想在fetch之后执行其他操作, 之前 我选择是使用merge,还是rebase,或者完全使用其他方法。