【Git实战】如何将本地已有项目关联并推送到指定的远程仓库(保姆级教程)

【Git实战】如何将本地已有项目关联并推送到指定的远程仓库(保姆级教程)

在日常开发中,我们经常遇到这样一种情况:代码已经在本地写了很多了,文件夹里并没有 .git 目录,此时我们在 GitHub/Gitee/GitLab 上创建了一个新的仓库(可能手滑顺便勾选了创建 README.md 或 .gitignore),现在想要把本地的代码推送到这个远程仓库中,并由 Git 进行管理。

本文将详细演示如何将本地现有文件夹与远程仓库关联,拉取远程文件,最后将本地项目完美提交的完整流程。


场景描述

  • 本地: 有一个项目文件夹 MyProject,里面有代码,但没有执行过 git init
  • 远程: 新建了一个仓库(Repository),并且仓库里已经有一些文件(比如 README.mdLICENSE)。
  • 目标: 将本地 MyProject 变成 Git 仓库,拉取远程的 README.md,然后把本地代码提交上去。

操作步骤

第一步:初始化本地仓库

首先,进入你的本地项目文件夹,打开终端(Terminal 或 Git Bash)。

bash 复制代码
# 进入项目目录(请根据实际路径修改)
cd /path/to/your/MyProject

# 初始化 git 仓库
git init

执行完毕后,项目目录下会多出一个隐藏文件夹 .git,这代表本地仓库已初始化完成。

第二步:关联远程仓库

使用 git remote add 命令将本地仓库与远程仓库建立连接。

bash 复制代码
# origin 是远程仓库的别名(习惯上默认叫 origin)
# <Your-Repository-URL> 换成你的仓库地址(HTTPS 或 SSH 均可)
git remote add origin https://gitee.com/username/my-project.git

第三步:拉取远程仓库内容(关键步骤)

这一步是很多新手容易报错的地方。

如果远程仓库是空的,直接 Push 即可。但如果远程仓库里已经有文件(如 README.md),我们需要先把它 Pull 下来。

此时直接执行 git pull origin master 通常会报错:
fatal: refusing to merge unrelated histories (拒绝合并无关的历史)。

原因: 本地仓库和远程仓库是两个独立生成的"历史",Git 认为它们没有血缘关系,所以默认不让合并。

解决方案: 加上 --allow-unrelated-histories 参数。

bash 复制代码
# 拉取远程代码,并允许合并无关历史
# 注意:此时分支名可能是 master 也可能是 main,请根据远程仓库实际情况调整
git pull origin master --allow-unrelated-histories

执行后,远程的 README.md 就会出现在你的本地文件夹中。

第四步:处理 .gitignore(可选但推荐)

在提交代码之前,建议在根目录下创建一个 .gitignore 文件,把不需要上传的文件(如 node_modules.idea*.logdist 等)过滤掉。

如果没有这个文件,可以手动新建:

bash 复制代码
touch .gitignore

然后在里面写入你想忽略的文件或文件夹规则。

第五步:暂存与提交本地代码

现在将本地的所有代码添加到暂存区,并提交到本地仓库。

bash 复制代码
# 将当前目录下所有更改添加到暂存区
git add .

# 提交到本地仓库,并附带注释
git commit -m "Initial commit: 将本地项目上传到远程仓库"

第六步:推送到远程仓库

最后,将本地所有的提交推送到远程仓库。

bash 复制代码
# -u 表示将本地分支与远程分支关联,下次直接输入 git push 即可
# 同样注意分支名是 master 还是 main
git push -u origin master

总结

整套流程的命令汇总如下(方便复制):

bash 复制代码
# 1. 初始化
git init

# 2. 关联远程(替换你的地址)
git remote add origin https://your-repo-url.git

# 3. 拉取远程文件(关键:允许不相关历史合并)
git pull origin master --allow-unrelated-histories

# 4. 添加全部文件
git add .

# 5. 提交
git commit -m "init project"

# 6. 推送
git push -u origin master

常见问题排查

  1. 报错 error: src refspec master does not match any

    • 原因:本地目前没有任何提交(commit),或者本地分支名不叫 master(现在的 Git 版本可能默认叫 main)。
    • 解决:先执行 git commit,然后检查当前分支名(git branch),如果是 main,则将命令中的 master 改为 main
  2. Pull 的时候出现 Vim 编辑界面

    • 原因:Git 在自动合并时需要你填写合并日志。
    • 解决:
      • i 进入编辑模式(可选,默认直接按 ESC 也可以)。
      • ESC 退出编辑模式。
      • 输入 :wq 然后回车(保存并退出)。

作者提示:

养成良好的 Git 习惯,在 Push 之前先 Pull,可以避免很多冲突。如果你觉得这篇文章有用,欢迎点赞收藏!

相关推荐
xiezhr17 分钟前
开源两天 9.5 万 Star!DeepSeek Harness 到底是个啥?小白安装到实战一篇讲透
ai·github·ai agent·deepseek·deepseek harness
暮云星影24 分钟前
git仓库分支管理
git·gitee·github·gitea
wangruofeng13 小时前
20822 star 的开源录屏软件弃 Tauri 换 Electron:表层是换壳,里子是 46 个 Rust 模块
github·音视频开发
CAD老兵16 小时前
一行代码集成 DWG/DXF 图纸查看:测量批注,数据不出站
前端·javascript·github
zh_xuan18 小时前
github搭建个人主页
html·github
fthux18 小时前
装闭 RenoPit 源码解析(10):AI如何审查装修合同与报价单
人工智能·ai·开源·github·open source·renopit
TunerT_TQ19 小时前
Google|LangExtract 源码静态评测:从 90 个 Python 文件看大模型结构化信息抽取工程基础
google·开源·github
Vuhao19 小时前
DeepSeek Harness:我 vibe coding 一个会陪你的桃濑日和
开源·github
Jay-r19 小时前
DeepSeek Harness 极简上手:装好、玩熟、让它自己长新能力
人工智能·windows·ai·github·ai编程·deepseek·harness
cakeism82521 小时前
信创产业与国产替代:政策框架、产业进展与研发基础设施实践
gitee