如何将文件夹连接到远程存储库



几个月前,我将一个项目从一台服务器移动到另一台服务器。我刚刚注意到.git文件夹不见了。

我想再次将该文件夹连接回GitHub上的远程repo。我试着遵循这个解决方案,但对我来说不起作用。

我创建了一个新的git init。我运行git remote add origin https://github.com/myusername/theRepo

然后,如果我运行git status,我会将所有红色文件作为Untracked文件::

git status
On branch master
No commits yet
Untracked files:
...........

然后我运行:git fetch --all

Fetching origin
Username for 'https://github.com': myusername
Password for 'https://myusername@github.com':
remote: Enumerating objects: 171, done.
remote: Counting objects: 100% (171/171), done.
remote: Compressing objects: 100% (111/111), done.
remote: Total 171 (delta 39), reused 162 (delta 30), pack-reused 0
Receiving objects: 100% (171/171), 3.98 MiB | 2.61 MiB/s, done.
Resolving deltas: 100% (39/39), done.
From https://github.com/myusername/myRepo
* [new branch]      master     -> origin/master

那么我运行CCD_ 4并且没有输出。git status仍然说我所有的文件都没有被追踪。

在这几个月里,我的本地文件很少比repo更新。在本地编辑(这是一个wordpress主题(。

我如何才能只看到不同的文件是红色的,这样我就可以只将真正不同的文件推送到repo?

或者,最好在本地创建一个新分支,将所有内容推送到新分支,然后在github中比较这两个分支,以备不时之需->合并

不管怎样,有人能帮助实现它吗?

如果我运行git checkout master:

git checkout master
error: The following untracked working tree files would be overwritten by checkout:
and here the big list of files (all files)

如果我再次运行:

git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)

你的第二次冲动是正确的。使用init创建.gitrepo,将master重命名为类似temp的其他名称,添加所有内容并提交。添加您的遥控器、提取和签出master。现在合并,允许不相关的历史记录并使用theirs选项。

因此,删除.git回购并重新开始:

% rm -rf .git
% git init
% git branch -M master temp
% git add .
% git commit -m'temp'
% git remote add origin git@github.com:you/yourrepo.git
% git fetch
% git switch master
% git merge --allow -X theirs temp
% git branch -d temp
% git push origin master

要查看所有分支,请在获取后执行以下操作

git branch -a

您没有任何自己的分支,但origin(github(上的所有分支都已下载,并且名称以origin/开头

这样的东西可能会起作用,但可能会先备份整个文件夹:

git checkout -b new-branch # I don't know how necessary this is
git reset origin/master # make new-branch the same as master
git checkout master # now we can probably just swatch underneath to master

如果最后一个命令不起作用,你可能仍然会看到你想看到的

我还没有试过,但这可能是我会做的。


另一种选择是将回购git clone复制到另一个文件夹中,然后在主文件已签出的情况下将所有文件复制到该文件夹中(但请确保不要复制刚刚创建的.git

cd ..
mv theRepo theRepo.bak
git clone https://github.com/myusername/theRepo
git checkout master # probably done already
cp -r ../theRepo.bak/* .

它应该复制所有不是以.开头的内容。。如果您有以.开头的文件需要更新,那么可能会一个接一个地获取它们,这样您就不会意外地从上次初始化中获取.git目录并获取

最新更新