如何将数据库服务器上的单个文件添加至远程Git仓库?
轻松搞定单个SQL脚本推送到远程Git仓库的方法
嘿,你遇到的这个问题很常见——远程仓库的master分支已经有自己的提交历史了,而你的本地仓库是全新初始化的,两者没有任何共享的提交记录,所以直接推送就被拒绝了(就是那个non-fast-forward错误)。下面给你几个简单的操作方案,按需选就行:
方案一:稳妥合并远程内容(推荐,适合远程有需要保留的内容)
如果远程仓库里已经有你不想丢的东西,就用这个方法:
- 先把远程的内容拉到本地,同时强制合并两个独立的提交历史(因为本地和远程本来没关系,默认不让合并):
git pull origin master --allow-unrelated-histories - 如果拉取时出现冲突(比如远程也有个
schema.sql),打开文件把冲突内容调整好,然后执行:git add schema.sql git commit -m "合并远程内容并添加schema.sql" - 最后推送到远程就行:
git push origin master
方案二:强制覆盖远程内容(仅当远程内容完全没用时用!)
要是远程仓库里的东西对你来说完全不重要,想直接用本地的版本把远程覆盖掉,就执行这条命令:
git push origin master --force
⚠️ 敲黑板:这个操作会把远程master分支上的所有内容都删掉,换成你本地的提交,一定要确认远程没东西要留再用!
方案三:从头来更省心(适合远程仓库刚创建的情况)
如果远程仓库是刚建的,其实可以换个更简单的流程,避免历史冲突:
- 先删掉本地的
.git文件夹(把之前的初始化操作清掉):rm -rf .git - 把远程仓库克隆到本地:
git clone https://my@bitbucket.org/me/myproject.git - 进入克隆好的文件夹,把你的
schema.sql复制进去,然后执行:git add schema.sql git commit -m "added schema.sql" git push origin master
这种方式完全不会有冲突问题,因为是基于远程的历史来操作的,新手友好。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

