git:clone没有引入所有文件?

时间:2010-12-08 19:57:48

标签: git

我刚刚创建了名为website的目录。这有几个图片,index.html页面等。我跑了:git --bare init --shared=0777

现在,它成功创建了一个空的共享仓库。

我现在尝试通过进入我的服务器上的/developers/developer1并运行git clone /live/website来克隆此项目。我收到以下消息:

Initialized empty Git repository in /developer/developer1/website/.git/
warning: You appear to have cloned an empty repository.

我正在运行UNIX。当我执行ls时,我看到的只是.git文件夹,并且没有在此处克隆所有images / index.html页面。我试着这样做:

git pull /live/website origin
fatal: Couldn't find remote ref origin
fatal: The remote end hung up unexpectedly

git pull /live/website master
fatal: Couldn't find remote ref master
fatal: The remote end hung up unexpectedly

我知道我需要做origin,因为当我做git remote -v时,这就是我得到的:

origin  /live/website  (fetch)
origin  /live/website (push)

简而言之,这就是我需要帮助的地方:

  1. 弄清楚如何将我的所有文件从/ live / website克隆到/ developer1
  2. 能够在developer1上本地更改文件并将这些更改推回。
  3. 但是,由于我似乎无法首先获取文件,所以我无法继续!主要目的是允许许多开发人员同时处理文件,并在完成后将其更改推送到主/live/website目录。

2 个答案:

答案 0 :(得分:3)

您必须执行一些步骤才能将文件存入您的仓库。假设您有一个存储裸存储库的服务器和一些完成实际工作的工作站。

  1. 在您的服务器上初始化裸仓库,就像您写的那样:
    git --bare init --shared=0777

  2. 将此目录签出到 workstation1
    git clone git://server/repo.git

  3. 将一些文件放入这个新克隆的repo中并将它们添加到轨道中。要添加所有这些内容,请执行git add .

  4. 将添加的文件提交到本地存储库:
    git commit -m 'initial commit'
    现在,更改(添加文件)存储在本地存储库中。

  5. 最后,将文件(假设您使用分支 master )推回服务器(称为 origin ):
    git push origin master

  6. 现在,执行更多本地更改并将其提交到本地仓库,如步骤4中所示。当您现在键入git status时,它应该会给您一条消息 Your branch is ahead of origin/whatever by 1 commit

  7. 要将更改恢复到中央存储库,您只需键入git push,因为您在步骤5中设置了对分支的跟踪。

  8. 现在,如果您从其他计算机(例如 workstation2 )执行git clone git://server/repo.git,您将获得刚刚签入的文件...

    这是一般的git工作流程:

    • 从服务器获取文件(初始:clone,连续pull
    • 进行一些更改并将其存储在本地仓库(git commit
    • 当时机成熟时,将本地提交推回到裸仓(git push

    要获得更详细的说明,请参阅progit book在线版中 Private Small Team 部分。

答案 1 :(得分:-1)

当您使用git init创建存储库时,它将作为空存储库启动。您必须先添加文件(git add -- file1 file2 other files),然后创建提交(git commit -m'initial commit')。

然后您应该能够使用git clone克隆所述存储库并从中获取/拉取