以下方法可行:
git init
git add
git commit
git remote add origin [url]
git fetch
git rebase origin/master
git push -u origin master
另一种选择是:
git init
git add
git commit
git remote add origin [url]
git pull --allow-unrelated-histories origin master
git push -u origin master
但
--allow-unrelated-histories
太长了(Git的创建者不希望实现快捷方式,因为“这是罕见的情况”),而且我听说在这种情况下最好使用rebase而不是merge。您知道有更快的方法吗?编辑: 我的工作流程:网站代码在ftp上,我直接在ftp上工作,因为这样对我来说更方便。我将ftp文件夹拖到桌面上,并运行git命令以合并本地ftp更改和协作者GitHub的更改。为什么我直接在ftp上工作: - 它所有的都集成在我的IDE中,我可以用一个软件随时修改 - 没有本地服务器可以用 - 除非协作者在GitHub上进行了更改,否则无需从本地传输到ftp - 网站的可付费插件不在本地,因此我无法拥有适当的本地测试环境 - 我曾经在本地工作,但由于任何原因将代码传输到ftp时结果均不同
我同意这可能是“手工制作”的,但既然有另一个人加入,我们将代码放在GitHub上,并使用上述git命令解决了我们代码之间的同步问题。我对代码具有写访问权限,因此无需fork / pull request。我不需要永久保留本地存储库,因此我更喜欢清除它,但是如果SCM需要我保留所有项目的本地存储库,则我将执行,但是...我不喜欢它,因为我不需要它,这就是我在第一条信息中找到解决方案的原因。
您认为我应该有更好的工作流程吗?您认为我们应该为小修改而使用不同的分支(如果允许具有更干净的历史记录,我会这样做,因为我喜欢保持有组织和精益工作,顺便说一下,这就是我使用rebase而不是merge的原因)?
实际上,重要的问题是:大型团队如何将其GitHub代码与ftp代码同步(并检查新的GitHub代码在更新存储库和实际ftp存储库之前是否正常)?愚蠢的问题:他们从FTP开始进行SCM(如何?这将很棒)?
我刚刚开始接触SCM,我正在考虑所有这些问题...
--allow-unrelated-histories
is long to write",因此请使用Tab键自动补全。 - Chris