做(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

我的意思是,显然有一个更短,但除此之外,它们基本上是在做同样的事情吗?


当前回答

Git clone <remote-url> <=>

创建一个新目录 Git init // init新的存储库 Git remote add origin <remote-url> // add remote Git fetch //获取所有远程分支 Git switch <default_branch> //切换到默认分支

git pull <=>

获取所有远程分支 合并当前本地分支和跟踪远程分支(不是另一个分支)(如果本地分支存在)

Git拉<远程> <分支> <=>

获取远程分支 合并当前本地分支和远程分支(如果本地分支存在)

其他回答

Git clone <remote-url> <=>

创建一个新目录 Git init // init新的存储库 Git remote add origin <remote-url> // add remote Git fetch //获取所有远程分支 Git switch <default_branch> //切换到默认分支

git pull <=>

获取所有远程分支 合并当前本地分支和跟踪远程分支(不是另一个分支)(如果本地分支存在)

Git拉<远程> <分支> <=>

获取远程分支 合并当前本地分支和远程分支(如果本地分支存在)

虽然git fetch命令将获取服务器上您还没有的所有更改,但它根本不会修改您的工作目录。它将简单地为您获取数据,并让您自己合并数据。然而,有一个叫git pull的命令,在大多数情况下,它本质上是一个git fetch,然后是git merge。

阅读更多信息:https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling

嗯,当我拉,当我克隆时,看到远程分支“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

用外行的话来说,我们可以说:

克隆:获取远程存储库的工作副本。 拉:我正在做这个,请给我其他人可能会更新的新变化。

Git克隆意味着您正在系统中创建存储库的副本。

git fork意味着你将存储库复制到你的Github帐户。

Git拉取意味着您正在获取最后修改的存储库。

Git push意味着您在修改存储库后返回它。

通俗来说:

Git克隆正在下载和Git拉刷新。