本机系统重装后,如何恢复git本地仓库并与github重新连接

系统重装后,ssh -T git@github.com命令提示 You’ve successfully authenticated……

github上的远程仓库版本已经超过一个月没有更新;
本地有更新的文件,但还没有拷贝到本地git仓库,也没创建本地仓库。

接下来的操作是无法恢复正常的git远程仓库更新,提示无任何需要更新的内容:

  1. git clone GitHub - yichuang-zh/ycproject: web
  2. cd 到克隆到本地的目录ycproject
  3. git init
  4. 把本地另一目录中有更新的文件拷贝到git克隆目录ycproject并cd到ycproject目录
  5. git add
  6. git连接从https切换到ssh
    git remote -v && git remote rm origin
    git remote add origin git@github.com:yichuang-zh/ycproject.git
  7. git add .
  8. git status

这个时候的问题是,git add .命令没有任何输出,git status 永远提示无文件要提交,干净的工作区。

感觉就是本地仓库与远程仓库没有对比,或对比出错了。

我查了一下文件,本地的git克隆目录中文件确实已经更新了。

这个要怎么弄?

=====

我之前尝试过不从远程克隆,而是在本地直接随便新建一个目录git init,然后把更新文件拷贝到这个目录,在这个目录里提交。但这样操作提示 远程有未合并的内容 之类。

看了很久也没看懂,感觉你好像有两个本地 git 仓库?

就标题而言,我的做法是,在重装系统之前把本地的 git 仓库打包(无论用什么方式),重装系统后再解包就是之前的 git 仓库了,这个仓库一直都是有 github 作为 remote 的,不需要重新连接(git remote add ...)。

更新:
上述做法是我针对一个特殊仓库的做法,普通仓库的话就压根不用备份,重装系统后直接运行git clone https://github.com/user/repo就行了。

git init 只有初始化没有 .git 的文件夹才有用。

如果你希望更新远程存储库,

  1. git clone git@github.com:yichuang-zh/ycproject.git
  2. 完成你的修改
  3. git add . 添加你的修改到暂存区
  4. git commit 提交
  5. git push。因为你从远程 clone 的,所以无需设置 remote 和设置本地分支对应的默认 remote
1 个赞

按你说的流程,果然可以了:

  • git clone git@github.com:yichuang-zh/ycproject.git
  • 完成修改
  • git add .
  • git commit
  • git push

我回想了一下,一个是没搞清楚git init,另一个是git clone没有用ssh,而是用了https,后面就乱了。


重装系统之前把本地的 git 仓库打包(无论用什么方式),重装系统后再解包就是之前的 git 仓库了,这个仓库一直都是有 github 作为 remote 的,不需要重新连接

重装系统时备份了很多东西,唯独没想起来有个git仓库,如果想到我肯定会备份一下。估计是很少用到它,所以想不起来。

这里的问题是,没有正确为分支指定远程追踪分支,假设你的分支叫 master,那么你需要 git push -u origin master

这里的问题是,你新建的存储库和远程存储库没有共同的提交祖先,因此无法自动合并并快进。

1 个赞

原来如此 :+1: