无需本地初始化目标仓库,能否将文件从一个Git仓库推送到另一仓库?
推送当前仓库部分文件到未初始化的远程仓库(不修改原仓库配置)
可以通过临时添加远程仓库或直接指定远程URL推送两种方式实现,全程无需改动原仓库的配置:
方法一:临时添加远程仓库推送指定内容
这种方式适合需要多次推送的场景,用完可随时移除临时远程:
- 为目标仓库添加临时远程别名(比如
temp-backup):git remote add temp-backup <目标仓库的Git URL> - 准备要推送的内容(以创建临时分支为例):
- 创建并切换到临时分支:
git checkout -b temp-branch - 清空分支内容(保留Git配置):
git rm -rf . - 从原分支(比如
main)复制需要的文件/目录:git checkout main -- path/to/api-v2/ file1.go config.yaml - 提交更改:
git add . && git commit -m "Backup API v2 related files"
- 创建并切换到临时分支:
- 推送到目标仓库:
(git push temp-backup temp-branch:mainmain是目标仓库要推送的分支名,按需修改) - 清理临时资源(可选):
git checkout main && git branch -D temp-branch && git remote remove temp-backup
方法二:直接指定远程URL推送(无需添加远程别名)
如果只是单次推送,直接用URL跳过远程别名配置:
- 同样先创建临时分支并准备好推送内容(步骤同方法一的2)
- 直接推送到目标仓库URL:
git push <目标仓库Git URL> temp-branch:main - 切换回原分支并删除临时分支:
git checkout main && git branch -D temp-branch
注意事项
- 若目标仓库是空仓库,第一次推送时可能需要添加
--force参数(新仓库首次推送通常无需强制,但遇到权限或分支冲突时可尝试) - 确保你拥有目标仓库的推送权限(提前配置好SSH密钥或HTTPS凭证)
- 如果只需推送单个文件,仅需修改
git checkout main --后的路径即可,多个资源用空格分隔
内容的提问来源于stack exchange,提问作者CraZyCoDer
相关产品推荐
相关产品推荐

