惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
小众软件
小众软件
博客园_首页
博客园 - 聂微东
V
V2EX
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
SegmentFault 最新的问题
J
Java Code Geeks
Last Week in AI
Last Week in AI
The Cloudflare Blog
月光博客
月光博客
雷峰网
雷峰网
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
博客园 - Franky
腾讯CDC
Jina AI
Jina AI
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
量子位
爱范儿
爱范儿
美团技术团队
T
Tailwind CSS Blog
博客园 - 【当耐特】
D
Docker
IT之家
IT之家
V
Visual Studio Blog
P
Proofpoint News Feed
L
LangChain Blog
Engineering at Meta
Engineering at Meta
C
Check Point Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Recorded Future
Recorded Future

博客园 - 子墨老师

基于Hutool的poi导出excel表格【升级更新】 如何设置wps单元格下拉选项设置 Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception ZoomIt的使用与快捷键 springboot项目中使用Java 8的日期时间API 基于springboot系统,如何跟踪会话过期,浏览器会话标识是否收到正常响应,存储,并在后续请求保持携带 SpringBoot+MyBatis实现数据库字段加密 Vue2中能否实现输入中文自动转化为拼音, 且不带音调 Excel导出问题:accessExternalStylesheet 解构赋值+扩展运算符在数组和对象上的应用例子 收藏一下JDK下载地址 介绍几个axios接口请求顺序的问题 vue cli的介绍 Failed to start nginx.service: Unit nginx.service not found. 如何实现文件批量重命名后再进行批量打包下载 如何能成功在centos7下安装nodejs18+以上版本 centos7下卸载nodejs源码包 基于ConcurrentMap锁机制的NFS文件合并方案 基于ConcurrentMap锁机制的NFS分片上传方案 gitee如何使用 centos7安装php+wordpress
如何将已经存在的本地项目源码关联到远程git仓库中
子墨老师 · 2025-06-16 · via 博客园 - 子墨老师

如何将已经存在的本地项目源码关联到远程git仓库中,这是一个非常使用的操作。我们给大家举一个案例进行讲解,大家可以参考学习

场景:用户想将本地已有的frontend和backend两个项目关联到同一个Git仓库中。这是一个很常见的场景,特别是前后端分离项目中需要统一管理代码的情况

结构:

my-repo/
├── frontend/     # 前端项目代码
│   ├── src/
│   ├── package.json
├── backend/      # 后端项目代码
│   ├── src/
│   ├── pom.xml
└── .gitignore    # 全局忽略文件

思路:在同一个仓库中为每个项目创建独立目录(如 frontend/backend/),提交时所有文件共享同一条历史记录

操作步骤:

1.本地创建一个新仓库并初始化

mkdir my-repo && cd my-repo
git init

2.创建全局.gitignore文件

在根目录创建 .gitignore,添加需忽略的文件(如node_modules/.env等)

touch .gitignore
echo "node_modules/" >> .gitignore
echo ".env" >> .gitignore

解释:上面命令规则与作用范围。值得去了解

  • node_modules/
    • 尾部斜杠 / 表示忽略目录而非文件。
    • 规则会递归忽略所有层级的 node_modules 目录(如根目录、子目录下的 node_modules)。
    • 若只想忽略根目录下的目录,需写为/node_modules/(开头斜杠限定根目录)。
  • .env
    • 无路径前缀时,会忽略整个仓库中所有名为 .env 的文件或目录(包括子目录)。
    • 若只想忽略根目录下的 .env 文件,需写为 /.env(开头斜杠限定根目录)

其他用法

  • 忽略特定子目录中的文件
echo "dist/*.js" >> .gitignore   # 忽略 dist 目录下所有 .js 文件
echo "logs/*.log" >> .gitignore  # 忽略 logs 目录下所有 .log 文件
  • 保留某些被忽略的文件
echo "!src/.env" >> .gitignore  # 不忽略 src/.env(需先忽略 .env)
  • 精确匹配根目录内容
echo "/.env" >> .gitignore      # 仅忽略根目录下的 .env 文件
echo "/build/" >> .gitignore    # 仅忽略根目录下的 build 目录

特殊场景处理

  • 已跟踪文件的忽略,若 node_modules 或 .env 已被 Git 跟踪,需先移除:
git rm -r --cached node_modules  # 从版本库删除(保留本地文件)
git rm --cached .env            # 同上
git commit -m "停止追踪 node_modules 和 .env"
  • 验证忽略效果
git status --ignored    # 查看被忽略的文件
git check-ignore -v .env  # 检查 .env 是否被忽略及匹配规则

3.迁移子项目到仓库子目录中(如果window系统,可以直接复制粘贴即可)

# 假设 frontend、backend 原路径为 ~/projects/frontend 和 ~/projects/backend
mkdir frontend backend
cp -r ~/projects/frontend/* frontend/
cp -r ~/projects/backend/* backend/

4.提交代码并关联远程仓库

git add .
git commit -m "初始化: 添加 frontend 和 backend 项目"
git remote add origin <远程仓库URL>  # 如 git@github.com:yourname/my-repo.git
git push -u origin master