{"id":23854062,"url":"https://github.com/lewangdev/meow","last_synced_at":"2025-09-08T01:31:51.956Z","repository":{"id":148141939,"uuid":"155982648","full_name":"lewangdev/meow","owner":"lewangdev","description":"Meow~喵~是一个面向新手的 Git/GitHub/GitLab 团队开发协作修炼场所","archived":false,"fork":false,"pushed_at":"2019-04-11T08:19:33.000Z","size":4234,"stargazers_count":7,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T13:25:39.802Z","etag":null,"topics":["git-training","github-training","gitlab-training"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lewangdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-03T12:50:14.000Z","updated_at":"2023-05-02T10:53:25.000Z","dependencies_parsed_at":"2023-06-26T01:50:24.053Z","dependency_job_id":null,"html_url":"https://github.com/lewangdev/meow","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lewangdev/meow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lewangdev%2Fmeow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lewangdev%2Fmeow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lewangdev%2Fmeow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lewangdev%2Fmeow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lewangdev","download_url":"https://codeload.github.com/lewangdev/meow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lewangdev%2Fmeow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274121922,"owners_count":25225801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git-training","github-training","gitlab-training"],"created_at":"2025-01-02T23:51:39.420Z","updated_at":"2025-09-08T01:31:51.950Z","avatar_url":"https://github.com/lewangdev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"MeowLogo.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/thisiswangle/meow/graphs/contributors\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/contributors/thisiswangle/meow.svg\" \u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/thisiswangle/meow\"\u003e\n        \u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/thisiswangle/meow.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/thisiswangle/meow/issues\"\u003e\n        \u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/thisiswangle/meow.svg\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# Meow\n\n* 这是一个面向新手的 Git/GitHub/GitLab 团队协作修炼场所，玩一次即可熟悉 Git/GitLab/GitHub 上团队协作开发实战的流程\n* 为了简化学习过程，提高学习乐趣，在开启学习之前，请至少准备猫咪皂片一张，没有猫的，可以去 [unsplash](https://unsplash.com/search/photos/cat) 使用关键词 `cat` 或者 `kitten` 搜索，一定会找到萌到你的猫咪照，meow~\n\n### 目标\n\n* 为使用 Git/GitHub/GitLab 协作开发的团队中的新手成员提供一份参考指南和训练场所。\n* 项目本身很简单，不要求参与的人贡献代码，不需要编程技能，任何想熟悉 Git/GitHub/Gitlab 的人都可以参加。\n* 通过这个项目可以学会:\n    * Git 从克隆项目(fork/clone)，创建分支(branch)，提交和同步修改(pull/push)，到发起合并请求(PR)的流程;\n    * 使用 GitHub/GitLab 进行项目协作开发管理。\n\n### 分支说明\n\n#### 长期分支(稳定分支)\n\n* master\n\n#### 临时分支\n\n* issues/{issue-id}，新建分支优先使用的命名约定 \n* bugfix/{issue-id}，为了区分描述的问题是BUG，可以使用 bugfix 分支命名约定\n* hotfix/{issue-id}，紧急情况的线上修复，可以使用 hotfix 分支命名约定\n* releases/{milestone-title}，项目定期发布的分支命名约定\n\n#### Git 分支规范\n\n0. fork 项目到自己的空间，如果是自己是 GitLab 的项目成员或者 GitHub 的项目协作成员，可以不用做这一步\n1. 认领自己准备要做的 issue， 假设 issue 编号是 #99\n2. 更新自己本地 master 分支代码: `git pull`\n3. 创建一个名字叫 issues/99 的分支: `git checkout -b issues/99 master`\n4. 开始功能开发，每一个 commit 都要带上自己的 issue id，完成之后提交自己的改动，如 `git commit -m '#99 昨天撸的那只猫的照片'`\n5. 提交自己的分支到 GitLab 或者 GitHub 上，`git push -u origin issues/99`\n6. 如果自己的分支开发完毕，本地测试过了，向 milestone 对应的分支发起 pull request(PR)，假设 milestone 名字是 20181028，base 分支则是 releases/20181028\n7. 等 milestone 中所有的 issue 的开发都完成了(开发不完则移动到下一个 milestone)，则都合并到 releases/20181028，这样 releases/20181028 这个分支就是最新开发的所有功能的代码，master 是上一个最新的，后面我们流程规范了，还会对 releases/20181028 分支进行各种测试，这个分支没有问题了\n8. 将 releases/20181028 分支与 master 分支合并，打个 tag，名字是 20181028，`git tag 20181028`，进行发布\n9. 进入下一个迭代和功能开发\n\n### 项目管理\n\n使用 Label 和 Issue 进行项目管理\n\n#### 标签分组和颜色设置\n\n| 分组     | 前缀   |      Label                                           | 背景颜色 RGB 值 |\n|----------|--------|:-----------------------------------------------------|-----------------|\n| 项目排期 | 项目   | 已确认，已排期，延后，开发中，测试中，已上线，待讨论 | c5def5          |\n| 功能分类 | 分类   | BUG，新功能，功能增强，功能完善，文档修改            | d4c5f9          |\n| 优先级   | 优先级 | 紧急，高，低                                         | e99695          |\n\n* [查看彩色的标签](https://github.com/thisiswangle/meow/labels)\n* [查看使用了标签的 Issue 列表](https://github.com/thisiswangle/meow/issues?q=is%3Aissue+is%3Aclosed)\n\n#### 项目发布\n\n* 每周二发布，版本号为发布日的日期，格式为 `yyyyMMdd`\n\n### 参与项目\n\n0. 角色扮演(如果是自己是 GitLab 的项目成员或者 GitHub 的项目协作成员)\n    * 新建一个 issue，为这个 issue 选好对应的标签，项目排期，功能分类，优先级至少各有一个标签\n    * 把 issue 分配给自己\n    * 把 issue 添加到对应的 milestone\n1. 上传至少一张猫照\n    * 创建一个目录\n    * 尽量使用有意义的名字且不要出现空格\n    * 目录名称可使用你的 GitHub ID 或者其他社交平台上非中文的 ID 来命名\n    * 影响排序的目录命名 (例如 AAAA.Folder，0.Folder，111Folder) 会被 Close Pull Request\n    * 如果需要在你的文件夹内创建描述文件,请尽量使用 Markdown 语法来编写\n    * 将猫照放在这个目录下面，照片尽量压缩，Size 不要太大，清晰度不要太低\n2. 使用 Git 分支规范完成任务\n3. 在 PR 被合并之后，关闭 issue\n4. 请仔细阅读 [CONTRIBUTING](CONTRIBUTING.md)\n\n### License\n\n本项目采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。\n\n### 参考资料\n\n* [Learn Git Branching](https://learngitbranching.js.org/)\n* [Git Doc](https://git-scm.com/doc)\n* [AMP](https://github.com/ampproject/amphtml/labels)\n* [MIP](https://github.com/mipengine/mip/labels)\n* [Dress](https://github.com/komeiji-satori/Dress)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flewangdev%2Fmeow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flewangdev%2Fmeow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flewangdev%2Fmeow/lists"}