更新 git命令_如何上传.md
This commit is contained in:
121
git命令_如何上传.md
121
git命令_如何上传.md
@@ -1,3 +1,9 @@
|
||||
# 001 git如何上传
|
||||
|
||||
|
||||
# 002 git如何上传到子目录
|
||||
|
||||
|
||||
|
||||
git config --global user.name "fei"
|
||||
git config --global user.email "fei@fei.fei"
|
||||
@@ -161,4 +167,119 @@ git push -u origin master
|
||||
一个小技巧: 如果你在本地 k3s自动化部署 文件夹里写了多份 .md 文件,你可以给它们起个好名字,比如 01-环境准备.md、02-安装脚本说明.md。
|
||||
|
||||
你现在关联并推送成功了吗?如果成功了,你打开 http://git.jpd.net3w.com 就能看到你的文档已经整整齐齐地躺在私有仓库里了。
|
||||
|
||||
|
||||
|
||||
|
||||
# 002 git到子目录
|
||||
|
||||
|
||||
当然可以。在 Git 中,将一个现有的本地文件夹“推”送到远程仓库的某个子目录下,通常有几种不同的实现方式,取决于你的具体需求(是想彻底合并,还是作为独立模块管理)。
|
||||
|
||||
以下是几种最常用的方案:
|
||||
|
||||
---
|
||||
|
||||
### 方案一:最简单直接的“搬运”法
|
||||
|
||||
如果你只是想把当前文件夹里的内容塞进远程仓库的一个文件夹里,这是最稳妥的办法:
|
||||
|
||||
1. **克隆远程仓库**到另一个临时目录:
|
||||
`git clone <远程仓库地址> temp-repo`
|
||||
2. **创建目标子目录**:
|
||||
`mkdir -p temp-repo/子目录名`
|
||||
3. **拷贝文件**:
|
||||
将你当前文件夹(`/home/fei/k3s/` 等)下的内容手动或使用 `cp` 命令拷贝到 `temp-repo/子目录名` 下。
|
||||
4. **提交并推送**:
|
||||
```bash
|
||||
cd temp-repo
|
||||
git add .
|
||||
git commit -m "Add k3s configs to subfolder"
|
||||
git push
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 方案二:使用 `git subtree` (保留提交历史)
|
||||
|
||||
如果你希望保留当前本地文件夹之前的 **Git 提交记录**,并将其并入另一个大仓库的子目录,可以使用 `subtree`。
|
||||
|
||||
假设你已经在当前文件夹初始化了 Git 并有提交记录:
|
||||
|
||||
1. 在本地关联远程大仓库:
|
||||
`git remote add big-repo <大仓库地址>`
|
||||
2. 使用 `subtree` 推送到指定分支和目录:
|
||||
```bash
|
||||
git push big-repo <当前分支名>:refs/heads/<目标分支名>
|
||||
|
||||
```
|
||||
|
||||
|
||||
*注意:这种方式比较底层。更标准的做法是在大仓库里执行 `pull`:*
|
||||
```bash
|
||||
# 在大仓库目录下执行
|
||||
git subtree add --prefix=k3s-configs <你的配置文件库地址> master --squash
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 方案三:使用 Git Submodule (模块化管理)
|
||||
|
||||
如果你希望这个子目录**保持独立性**(即它依然是一个独立的仓库,只是被大仓库“引用”),Submodule 是最佳选择。
|
||||
|
||||
1. 先将当前文件夹推送到它自己的远程仓库(比如 `k3s-backup`)。
|
||||
2. 进入你的大仓库目录,运行:
|
||||
```bash
|
||||
git submodule add <配置文件仓库地址> 子目录名
|
||||
git commit -m "Add k3s configs as submodule"
|
||||
git push
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 总结建议
|
||||
|
||||
| 需求场景 | 推荐方案 |
|
||||
| --- | --- |
|
||||
| **纯备份,不需要复杂的关联** | **方案一** (手动拷贝) |
|
||||
| **想在大仓库里看到所有历史记录** | **方案二** (Subtree) |
|
||||
| **配置目录经常独立更新,多处复用** | **方案三** (Submodule) |
|
||||
|
||||
由于你提到你的配置文件通常在 `/home/fei/k3s/`,建议先检查该目录下是否有 `.git` 隐藏文件夹。如果有,采用方案二或三可以保留你的修改痕迹。
|
||||
|
||||
**需要我帮你写一个具体的脚本来自动化这个推送过程吗?**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user