Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 将两台不同计算机上的两个预先存在的本地文件夹合并到一个共享在线存储库中_Git - Fatal编程技术网

Git 将两台不同计算机上的两个预先存在的本地文件夹合并到一个共享在线存储库中

Git 将两台不同计算机上的两个预先存在的本地文件夹合并到一个共享在线存储库中,git,Git,我在两台不同的机器上有相同的文件夹结构 例如,我在机器1上有:“c:\user\tryer\myprojects\file.cpp” 在机器2上:“e:\user\tryer\myprojects\file.cpp”(请注意同一文件的不同绝对路径。) 这两个路径指的是同一项目的同一个文件,我有时在机器1上工作,有时在机器2上工作 我通过在两台机器上独立运行的google drive在网络上同步这两个文件夹,以便对其中一个文件夹的更改自动同步到另一个文件夹 现在,我想通过github为这个文件创建

我在两台不同的机器上有相同的文件夹结构

例如,我在机器1上有:
“c:\user\tryer\myprojects\file.cpp”

在机器2上:
“e:\user\tryer\myprojects\file.cpp”
(请注意同一文件的不同绝对路径。)

这两个路径指的是同一项目的同一个文件,我有时在机器1上工作,有时在机器2上工作

我通过在两台机器上独立运行的google drive在网络上同步这两个文件夹,以便对其中一个文件夹的更改自动同步到另一个文件夹

现在,我想通过github为这个文件创建一个通用的在线源代码控制(比如
http://github.com/tryer/myprojects.git
)这样我就可以在任何一台机器上使用git了。也就是说,机器1上对
文件.cpp
的任何更新都应该能够提交到在线回购,随后对
文件.cpp
的任何其他未来更新也应该能够提交到相同的通用在线回购

从我到目前为止所读到的内容来看,虽然两个不同的本地存储库可能共享同一个公共在线存储库,但似乎需要从在线存储库重新克隆到机器2,例如从机器1进行初始提交。但我不想这么做。我不想在任何机器上本地删除任何文件或文件夹,但仍然拥有相同的联机存储库,该存储库是共享的、通用的,并且可以从任何一台机器访问


有没有办法做到这一点?我担心的是,如果我从机器1执行第一次提交,那么带有机器1的绝对地址或特定于机器1的内容会在线存储,因此,当更新来自机器2的在线回购时,会产生冲突,该机器2对同一文件具有不同的绝对地址。

如果您的在线回购仅包含一个文件,则不必删除机器2上的任何内容。
在machine2上(保存本地文件以确保安全)

cd/path/to/local/file
git init。
git远程添加源https://github.com//
git获取
git交换机-c主机
报告在最后一步中看到错误(
致命:名为master的分支已存在),但这是因为机器1和2的文件夹已同步,这是我的做法


机器2上的文件夹初始化后,您可以推回GitHub,然后从机器1中拉出。

让我试试这个。实际上,我在我的作品中简化了一些情况。我实际上有一个包含项目文件的完整文件夹<代码>“:\user\tryer\myprojects\\”
如果只是一个文件,那么步骤是否必须不同于包含多个文件的文件夹?这将签出该文件夹中存储库的所有文件。hmm。在机器2上,当我执行最后一步时,我得到
致命消息:名为master的分支已经存在
,只有当您有一个现有存储库时才会发生。但是无论如何,尝试一下git switch masterYes,它“工作”的意思是它不会给出任何错误。它给了一堆文件,并说已经在'主'。但是,我应该担心的是,当我执行git switch master时,并没有报告初始提交中的所有文件。我现在是否同时在机器1和机器2上签出?现在,在机器2上,如果我做了任何更改并提交了它,我是否应该在机器1上重复上述步骤,以便我现在正在处理从机器2提交的内容的签出版本?谢谢你的帮助,让我明白到底发生了什么!
cd /path/to/local/file
git init .
git remote add origin https://github.com/<me>/<CommonProject>
git fetch
git switch -c master