如何将未受Git管控的本地目录关联至已有Git远程仓库?
如何将本地未版本控制的目录关联到现有远程Git仓库(保留本地修改)
没问题,完全可以直接把这个本地目录关联到远程仓库,不用折腾迁移文件!下面分命令行和SourceTree两种方法,都能安全保留你的本地修改,按需求选就行:
命令行方法(通用且可控)
先提醒一句:操作前务必备份整个本地目录,虽然流程很安全,但防患于未然总是好的。
- 打开终端/命令提示符,进入你的本地目录:
cd /path/to/your/local/folder - 初始化本地Git仓库:
git init - 添加远程仓库地址(把
<你的远程仓库URL>换成实际的仓库地址,比如git@github.com:username/repo.git或者HTTPS地址):git remote add origin <你的远程仓库URL> - 拉取远程仓库的所有分支和内容:
git fetch origin - 将本地分支与远程主分支关联(这里假设远程主分支是
main,如果是master就替换成master):
这一步执行后,Git会自动识别出你本地修改过的文件,不会覆盖你的修改。git checkout -b main origin/main - 查看本地修改状态,确认没问题:
git status - 提交本地修改:
git add . # 或者只添加你需要的文件,比如git add filename.txt git commit -m "提交本地新增/修改的内容" - 最后推送到远程仓库:
git push origin main
SourceTree图形化操作方法
如果你习惯用SourceTree,步骤也很简单:
- 先备份你的本地目录(同样重要!)
- 打开SourceTree,点击左上角的「新建」→「从本地文件夹添加」
- 在弹出的窗口中选择你的本地目录,点击「创建」,SourceTree会自动帮你初始化本地Git仓库
- 点击顶部工具栏的齿轮图标(设置),选择「远程仓库」,然后点击「添加」
- 在弹窗里填写远程仓库的名称(默认填
origin就行)和仓库URL,点击「确定」 - 回到主界面,点击顶部的「拉取」按钮,在弹出的窗口中选择远程的主分支(比如
main),点击「拉取」 - 拉取完成后,你会在「工作副本变更」区域看到本地修改的文件
- 选中需要提交的文件,在下方填写提交信息,点击「提交」
- 最后点击顶部的「推送」按钮,将本地提交推送到远程仓库即可
关键注意事项
- 如果远程仓库在你操作期间有其他人提交了新内容,拉取时可能会出现冲突,这时候需要先解决冲突再提交推送
- 本地如果有远程仓库没有的文件,Git会标记为「未跟踪文件」,你可以选择添加到仓库或者创建
.gitignore文件忽略它们 - 全程不要用
git pull直接拉取,先用git fetch确认远程状态,避免意外覆盖本地修改
内容的提问来源于stack exchange,提问作者jvoigt
相关产品推荐
相关产品推荐

