mirror of
https://gitee.com/coder-xiaomo/gitee2github
synced 2025-09-07 04:21:39 +08:00
README文件标准化,中英文之间添加标点符号,移除不受支持的TOC目录,添加项目介绍视频B站连接
This commit is contained in:
50
README.md
50
README.md
@@ -1,15 +1,19 @@
|
||||
|
||||
# Git 仓库同步工具
|
||||
|
||||
*Gitee2gitHub*
|
||||
*Gitee2GitHub*
|
||||
|
||||
本工具用于比较用户 Gitee 账号与 GitHub 账号中Git仓库,并进行同步(同名仓库镜像覆盖)。
|
||||
|
||||
> 注意:虽然本工具在开发过程中经过了很多的代码测试,但是由于测试环境较为复杂,没有办法做到覆盖每种情况,所以也许还会有Bug等等。本工具在 Windows 系统下开发,原理上来说 Linux 系统上或许也可以用,但是还未来得及测试。<span style="color: red;">建议有一定Git基础,能大致了解本工具原理的用户使用,如果您不了解本工具的同步原理,请一定不要盲目使用,因为一旦操作失误你可能会丢失仓库代码!</span>
|
||||
|
||||
## 目录
|
||||
|
||||
[toc]
|
||||
|
||||
## 项目介绍视频
|
||||
|
||||
> 项目介绍与安装使用视频已上传至B站,欢迎前往观看:
|
||||
>
|
||||
> https://www.bilibili.com/video/BV1uU4y1Z7NW/
|
||||
|
||||
|
||||
|
||||
@@ -159,7 +163,7 @@ pip install -r .\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
|
||||
|
||||
得到 `Client ID` 和 `Client Secret`,将这两个信息复制保存下来,在下一步配置 config.ini 文件的时候需要。
|
||||
|
||||
> 注意 GitHub 的 `Client Secret` 只会在生成后显示一次,之后如果忘记则选哟重新生成一个,不像 Gitee 随时可以查看。
|
||||
> 注意 GitHub 的 `Client Secret` 只会在生成后显示一次,之后如果忘记则需要重新生成,不像 Gitee 随时可以查看。
|
||||
|
||||

|
||||
|
||||
@@ -224,8 +228,6 @@ RequestTimeout=10
|
||||
|
||||
#### 配置 mapping.json(可选)
|
||||
|
||||
|
||||
|
||||
##### 配置
|
||||
|
||||
|
||||
@@ -235,15 +237,18 @@ RequestTimeout=10
|
||||
{
|
||||
"orgNameMap": {
|
||||
"from1": "to1",
|
||||
"from2": "to2"
|
||||
"from2": "to2",
|
||||
...
|
||||
},
|
||||
"repoNameMap": {
|
||||
"from1": "to1",
|
||||
"from2": "to2"
|
||||
"from2": "to2",
|
||||
...
|
||||
},
|
||||
"fullNameMap": {
|
||||
"from1": "to1",
|
||||
"from2": "to2"
|
||||
"from2": "to2",
|
||||
...
|
||||
}
|
||||
}
|
||||
````
|
||||
@@ -268,7 +273,7 @@ RequestTimeout=10
|
||||
|
||||
映射就是在您的 Gitee 和 GitHub 个人地址、或仓库地址地址不同,但是这两个仓库需要同步仓库时使用。
|
||||
|
||||
> 例如:您的 Gitee 用户地址为 `https://gitee.com/username1`,而 GitHub 用户地址为 `https://github.com/username2`,那么就可以配置 “orgNameMap”,使得 `username1` 映射为 `username2` 。
|
||||
> 例如:您的 Gitee 用户地址为 `https://gitee.com/username1`,而 GitHub 用户地址为 `https://github.com/username2`,那么就可以配置 `orgNameMap`,使得 `username1` 映射为 `username2` 。
|
||||
>
|
||||
> (设置之后 Gitee 下的 `username1` 将不再与 GitHub 下的 `username1` 匹配,而是与与 GitHub 下的 `username2` 匹配)
|
||||
|
||||
@@ -276,27 +281,27 @@ RequestTimeout=10
|
||||
|
||||
###### 映射有哪几种?
|
||||
|
||||
本项目分了三个维度的映射,分别是 orgNameMap,repoNameMap和fullNameMap。
|
||||
本项目分了三个维度的映射,分别是 `orgNameMap `、`repoNameMap` 和 `fullNameMap`。
|
||||
|
||||
orgNameMap 是用户地址的映射,repoNameMap 是全映射(综合前两种)
|
||||
|
||||
| 举例 | 配置fullNameMap | 配置orgNameMap | 配置repoNameMap |
|
||||
| ------------------ | ---------------------------------------- | ------------------------ | ------------------------ |
|
||||
| | "orgname/reponame": "org-name/repo-name" | "orgname": "org-name" | "reponame": "repo-name" |
|
||||
| orgname/reponame | 映射为org-name/repo-name | 映射为org-name/reponame | 映射为orgname/repo-name |
|
||||
| org-name/reponame | 不变 | 不变 | 映射为org-name/repo-name |
|
||||
| orgname/repo-name | 不变 | 映射为org-name/repo-name | 不变 |
|
||||
| ------------------ | ------------------------------------------ | ---------------------------- | --------------------------- |
|
||||
| **配置的映射规则** | `"orgname/reponame": "org-name/repo-name"` | `"orgname": "org-name"` | `"reponame": "repo-name"` |
|
||||
| orgname/reponame | 映射为 `org-name/repo-name` | 映射为 `org-name/reponame` | 映射为 `orgname/repo-name` |
|
||||
| org-name/reponame | 不变 | 不变 | 映射为 `org-name/repo-name` |
|
||||
| orgname/repo-name | 不变 | 映~射为 `org-name/repo-name` | 不变 |
|
||||
| org-name/repo-name | 不变 | 不变 | 不变 |
|
||||
|
||||
|
||||
|
||||
###### 具体是怎么匹配的?匹配步骤是什么?
|
||||
|
||||
现在有gitee的一个仓库 org1/repo1 ,GitHub的一个仓库 org2/repo2
|
||||
现在有 Gitee 的一个仓库 `org1/repo1` ,GitHub 的一个仓库 `org2/repo2`
|
||||
|
||||
1. 检测 org1/repo1 是否在 fullNameMap 映射中,如果在,那么将其映射为 org1'/repo1',再将 org1'/repo1' 与 org2/repo2 匹配;
|
||||
2. 若不在 fullNameMap 映射中,那么进行 orgNameMap 和 repoNameMap 匹配。 org1/repo1 会先被映射为 org1''/repo1,紧接着被映射为 org1''/repo1'',再将 org1''/repo1'' 与 org2/repo2 匹配;
|
||||
3. 若 org1/repo1 不在上述映射范围内,那么直接将 org1/repo1 与 org2/repo2 匹配。
|
||||
1. 检测 `org1/repo1` 是否在 `fullNameMap` 映射中,如果在,那么将其映射为 `org1'/repo1'`,再将 `org1'/repo1'` 与 `org2/repo2` 匹配;
|
||||
2. 若不在 `fullNameMap` 映射中,那么进行 `orgNameMap` 和 `repoNameMap` 匹配。 `org1/repo1` 会先被映射为 `org1''/repo1`,紧接着被映射为 `org1''/repo1''`,再将 `org1''/repo1''` 与 `org2/repo2` 匹配;
|
||||
3. 若 `org1/repo1` 不在上述映射范围内,那么直接将 `org1/repo1` 与 `org2/repo2` 匹配。
|
||||
|
||||
|
||||
|
||||
@@ -308,7 +313,7 @@ orgNameMap是用户地址的映射,repoNameMap是全映射(综合前两种
|
||||
|
||||
项目代码中很多地方都标注有详细的注释,感兴趣的小伙伴儿可以研究研究,也欢迎和我交流。
|
||||
|
||||
> 注意:由于GitHub和Gitee限制,最多读取100个仓库信息。如需同步更多仓库,请修改 `assets/giteeOauth.py` 和 `assets/githubOauth.py` 脚本中的逻辑进行分批获取。也欢迎给本仓库提PR。
|
||||
> 注意:由于 GitHub 和 Gitee 的分页规则,每次请求最多读取 100 个仓库信息。如需同步更多仓库,需要分页获取。分页获取功能本项目暂时还没有实现。如果您有 Python 脚本编写经验,欢迎给本仓库提Pr。需要修改的地方有: `assets/giteeOauth.py` 和 `assets/githubOauth.py` 脚本中的分页分批获取。
|
||||
|
||||
|
||||
|
||||
@@ -338,6 +343,3 @@ gitee2github
|
||||
```
|
||||
|
||||
\* `d` 代表文件夹,`-` 代表文件
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user