git - 当文件夹和文件已经存在时克隆 git 存储库
问题描述
我在两台电脑上工作,交替使用哪一台,每次都在它们之间移动整个东西。然后我在计算机 A 上设置 git 并将其与 github 存储库同步。到目前为止,一切都很好。
现在我想将它克隆到计算机 B,但是 git clone 不起作用,因为文件夹和文件已经存在。
这就是我在计算机 B 上所做的:
git init
git remote add origin <my-github-rep.git>
git fetch
现在我需要把 github 上的最新文件带到这里。
git reset origin/master
我认为这就是将当前 HEAD 重置为指向原点的 master 分支的原因。
好的,现在问题来了:
我假设此时我需要以下内容:
git checkout -t origin/master
因为这会带来所有来自源的最新文件,并且会在计算机 B 上检查整个文件。这就是我想要的,但它不起作用。这是错误消息:“致命:一个名为'master'的分支已经存在。 ”
我该如何克服这个问题,只带文件?我做错了什么。
(澄清一下:我不想只是删除文件夹和文件并简单地克隆存储库,因为那里有更多不应该在 git 上的文件,所以很难挑选;在这个点我想要的是从远程存储库中的最新文件覆盖我本地文件夹中的所有相关文件 - 这样我将拥有最新的代码,并且 git 未跟踪的文件不会受到影响)
解决方案
您的git reset
命令创建了名为master
. 它已经指向正确的提交。问题是您现在有一个填充的索引,但没有正确填充的工作树。
此时最简单的解决方案是将所有要保留的文件完全移出该目录,例如,mkdir ../save
然后mv * ../save
将它们移开。然后你有一个空的当前工作树,并git status
会告诉你所有文件都被删除但没有暂存提交。然后,您可以执行任一操作git reset --hard
或git checkout -- .
将所有文件恢复,然后mv ../save/* .
将保存的文件放回原处。
那时,剩下的一个问题是您的本地master
没有上游。要解决这个问题,只需运行:
git branch --set-upstream-to=origin/master
你会准备好的。
推荐阅读
- sql-server - 通过输入不完整的 ID 号从 StudentTable 中获取正确的学生 ID
- r - 如何一次查询具有多个关键字的 Mongo 数据库?
- python - 我可以使用 tensorflow-hangul-recognition 制作 Unity 插件吗
- python - 在 PySpark 的列名中使用带有特殊字符的镶木地板文件
- html - 滚动时我的导航栏上出现白色间隙
- sql - MS Access 中的某些隐藏字符是否有问题?
- c++ - C++ Vigenere 和 Caesar 密码在同一编程中使用 switch case
- cassandra - 将 Cassandra OSS 4.0 RC1 节点添加到具有 DSE 6.0.14 节点的集群中
- wordpress - 防止在子路由中将 cookie 发送到 wordpress
- c# - 拉取访问被拒绝,存储库不存在或可能需要授权:服务器消息:不足的范围:授权失败