做(mkdir repo和cd repo之后)的区别是什么:
git init
git remote add origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull origin master
and
git clone git://github.com/cmcculloh/repo.git
我的意思是,显然有一个更短,但除此之外,它们基本上是在做同样的事情吗?
做(mkdir repo和cd repo之后)的区别是什么:
git init
git remote add origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull origin master
and
git clone git://github.com/cmcculloh/repo.git
我的意思是,显然有一个更短,但除此之外,它们基本上是在做同样的事情吗?
当前回答
嗯,当我拉,当我克隆时,看到远程分支“4.2”时缺少什么?有些东西显然不一样。
tmp$ mkdir some_repo
tmp$ cd some_repo
some_repo$ git init
Initialized empty Git repository in /tmp/some_repo/.git/
some_repo$ git pull https://github.ourplace.net/babelfish/some_repo.git
:
From https://github.ourplace.net/babelfish/some_repo
* branch HEAD -> FETCH_HEAD
some_repo$ git branch
* master
vs
tmp$ rm -rf some_repo
tmp$ git clone https://github.ourplace.net/babelfish/some_repo.git
Cloning into 'some_repo'...
:
Checking connectivity... done.
tmp$ cd some_repo
some_repo$ git branch
* 4.2
其他回答
嗯,当我拉,当我克隆时,看到远程分支“4.2”时缺少什么?有些东西显然不一样。
tmp$ mkdir some_repo
tmp$ cd some_repo
some_repo$ git init
Initialized empty Git repository in /tmp/some_repo/.git/
some_repo$ git pull https://github.ourplace.net/babelfish/some_repo.git
:
From https://github.ourplace.net/babelfish/some_repo
* branch HEAD -> FETCH_HEAD
some_repo$ git branch
* master
vs
tmp$ rm -rf some_repo
tmp$ git clone https://github.ourplace.net/babelfish/some_repo.git
Cloning into 'some_repo'...
:
Checking connectivity... done.
tmp$ cd some_repo
some_repo$ git branch
* 4.2
它们基本上是一样的,除了克隆会设置额外的远程跟踪分支,而不仅仅是master。查看手册页:
将存储库克隆到新创建的目录中,为克隆存储库中的每个分支创建远程跟踪分支(使用git branch -r可见),并创建和检出从克隆存储库的当前活动分支派生出来的初始分支。
虽然git fetch命令将获取服务器上您还没有的所有更改,但它根本不会修改您的工作目录。它将简单地为您获取数据,并让您自己合并数据。然而,有一个叫git pull的命令,在大多数情况下,它本质上是一个git fetch,然后是git merge。
阅读更多信息:https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling
Git克隆意味着您正在系统中创建存储库的副本。
git fork意味着你将存储库复制到你的Github帐户。
Git拉取意味着您正在获取最后修改的存储库。
Git push意味着您在修改存储库后返回它。
通俗来说:
Git克隆正在下载和Git拉刷新。
Git克隆是获取现有存储库的本地副本的方法。对于给定的存储库,它通常只使用一次,除非您希望它有多个工作副本。(或者在搞砸了本地的拷贝后,想要一份干净的拷贝…)
Git pull(或Git fetch + Git merge)是如何从远程存储库更新本地副本的。如果您正在与他人合作,这是一个您将经常运行的命令。
正如第一个示例所示,可以使用其他git命令的分类来模拟git clone,但git pull所做的事情与git clone“基本上相同”(反之亦然)并非真的如此。