如果这实际上是您遵循的命令的确切顺序,那么这里有一些注释可以帮助您了解您的位置:
$ git init
由于您似乎输入了一个空目录(在新机器上,...),这会在您当前目录之外创建一个新存储库。这个存储库没有对象,还没有master
分支,没有提交,等等......
$ git remote add origin https://github.com/myco/myproj.git
这会添加您的原始存储库,应该不是问题。
$ git pull (this downloads lots of files)
这有两件事 -git fetch
收集您的存储库当前具有但您的本地存储库没有的所有对象、分支等origin
(即一切,因为您在当前空的存储库中),然后是git merge
. 该merge
阶段应该在这里失败,并显示“你没有告诉我你想要合并什么,所以我不打算这样做”的效果。
$ ls (no files)
对。您仍然没有检查任何内容,并且由于git merge
上述失败,它从未达到更新您的工作目录的地步。
$ git branch --set-upstream master origin/master
现在您正在创建一个以上游为起点的master
分支。origin/master
但是,这不会检查分支,这会使您的工作目录保持与之前相同的状态,即为空。
$ ls (no files)
你还没有检查任何东西,所以这是意料之中的。
$ git status ( shows all the files are marked for deletion! )
git
将您的空工作目录与它认为应该存在的目录进行比较,并确定您必须删除所有内容。
你真正想做的是:
$ cd directory/where/you/want/your/repository
$ git clone https://github.com/myco/myproj.git
$ cd myproj
然后,将您的其他项目配置文件复制到位。
如果您真的想以手动方式执行此操作,请使用git fetch
而不是git pull
,并在您的git branch ...
行之后执行 a git checkout master
(或 dogit checkout -b master origin/master
代替该git branch ...
行,这会在签出文件之前隐式执行分支设置)。