Git没有git文件夹就可以进入现有项目

时间:2014-09-24 10:39:18

标签: git ssh

这似乎应该是一个常见问题,但也许我并没有寻找正确的术语。

我刚刚使用scp将远程服务器上的旧项目复制到本地计算机。我使用git init创建了一个git存储库的新实例,并使用git remote add origin ...在线创建了一个新的远程git存储库,我推到了该存储库。这是git跟踪的项目第一个实例。

我创建了一个.gitignore文件,因此并非所有内容都被推送到远程存储库,并且在初始提交后我也推了一些小的更改。

现在我希望将存储库拉到远程服务器上的原始项目中。它显然没有.git文件夹。我希望删除更改但保留.gitignore中列出的文件,因此我无法简单地擦除目录并执行干净git clone

我只有ssh访问权限。我该怎么做?

1 个答案:

答案 0 :(得分:0)

好的找出了一个适合我使用ssh的方法。

将本地项目.git文件夹复制到远程服务器目录上的项目。 您可能必须复制到具有正确权限的文件夹,然后移动.git文件夹

scp /local/path/to/.git user@remote:/remote/path/to/temp/folder

更改.git的所有权并将其移至现有项目目录

chown -R www-data:www-data .git/
mv .git/ /var/www/....

执行git状态会显示已更改的文件和未跟踪的文件。在我的情况下,'更改'文件是我想要覆盖的旧文件,以及我在.gitignore中指定文件的未跟踪文件。

所以要将文件'恢复'到分支中的新版本(存储在.git文件夹中)并忽略未跟踪的文件,我就这样做了

git checkout .

这也添加了.gitignore文件,我也必须chown

这是在一个只有一个主分支的项目上测试的,但我希望这有助于将来的人们。我的术语可能稍微有点描述git进程,但希望每个人都能得到图片。