首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2025年新手入门:Git平台(GitHub/GitCode/Gitee)完全使用指南

2025年新手入门:Git平台(GitHub/GitCode/Gitee)完全使用指南

作者头像
安全风信子
发布于 2025-11-13 12:56:09
发布于 2025-11-13 12:56:09
7.9K0
举报
文章被收录于专栏:AI SPPECHAI SPPECH

引言

要点

描述

痛点

不知道如何使用Git平台?不熟悉Git的全面操作?不会高效协作开发?

方案

本教程详细讲解GitHub、GitCode、Gitee三大平台的使用方法,以及Git支持的所有核心操作

驱动

掌握Git平台和全部Git操作是2025年程序员必备技能,提升团队协作效率和代码管理能力!

在当今的软件开发领域,Git已经成为了版本控制的标准工具。而GitHub、GitCode和Gitee作为主流的Git托管平台,更是开发者日常工作中不可或缺的一部分。无论你是个人开发者还是团队协作,全面掌握Git的所有操作以及这些平台的使用方法都能极大地提高你的开发效率和代码管理能力。在本教程中,我们将详细学习Git支持的所有核心操作以及这三大平台的使用方法。

目录

章节

内容

1

Git基础知识与环境配置

2

Git仓库操作(创建、克隆、初始化)

3

Git工作区操作(查看状态、添加文件、提交更改)

4

Git分支管理(创建、切换、推送、拉取、合并、删除)

5

Git远程仓库操作(添加、查看、同步、推送、拉取)

6

Git历史记录操作(查看日志、回滚、重置)

7

Git高级操作(暂存、标签、子模块、变基)

8

GitHub平台详解

9

GitCode平台详解

10

Gitee平台详解

11

Issue管理与Pull Request/Merge Request

12

平台特性对比与选择建议

13

团队协作最佳实践

14

自动化工作流配置

15

常见问题解决与实用技巧

1. Git基础知识与环境配置

1.1 Git是什么

Git是一个分布式版本控制系统,它可以帮助你跟踪代码的变化、协作开发、回滚到之前的版本等。与集中式版本控制系统不同,Git是分布式的,这意味着每个开发者都有完整的代码库副本。

1.2 Git的基本概念
  • 仓库(Repository):包含所有代码和版本历史的地方
  • 工作区(Working Directory):你当前编辑的文件所在的目录
  • 暂存区(Stage/Index):用于临时存放你的更改,准备提交
  • 本地仓库(Local Repository):存储在你本地的代码仓库
  • 远程仓库(Remote Repository):托管在服务器上的仓库
  • 提交(Commit):记录代码的一次变化
  • 分支(Branch):代码的一个独立版本
  • 合并(Merge):将一个分支的更改合并到另一个分支
  • 克隆(Clone):从远程仓库复制代码到本地
  • 拉取(Pull):从远程仓库获取最新更改
  • 推送(Push):将本地更改推送到远程仓库
1.3 Git的安装

在使用Git平台之前,你需要先在本地安装Git。

Windows安装:

  1. 访问Git官网(https://git-scm.com/)下载最新版本的Git安装程序
  2. 运行安装程序,按照提示完成安装
  3. 安装完成后,打开命令提示符或Git Bash,输入git --version检查是否安装成功

macOS安装:

  1. 使用Homebrew安装:brew install git
  2. 或者访问Git官网下载安装程序
  3. 安装完成后,打开终端,输入git --version检查是否安装成功

Linux安装:

  • Ubuntu/Debian:sudo apt-get install git
  • CentOS/RHEL:sudo yum install git
  • 安装完成后,打开终端,输入git --version检查是否安装成功
1.4 Git的基本配置

安装完成后,你需要进行一些基本配置,设置你的用户名和邮箱:

代码语言:javascript
复制
# 设置你的用户名
git config --global user.name "Your Name"

# 设置你的邮箱
git config --global user.email "your.email@example.com"

# 查看配置信息
git config --list

# 设置默认文本编辑器
git config --global core.editor "code --wait"  # 使用VS Code作为编辑器

# 设置差异比较工具
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"

# 设置自动换行处理(Windows用户建议设置)
git config --global core.autocrlf true
1.5 Git帮助命令

Git提供了丰富的帮助文档,可以随时查询:

代码语言:javascript
复制
# 获取Git命令的一般帮助
git help

# 获取特定命令的帮助
git help <command>
# 例如:git help commit

git <command> --help
# 例如:git commit --help

2. Git仓库操作(创建、克隆、初始化)

2.1 创建新仓库

在本地初始化新仓库:

代码语言:javascript
复制
# 在当前目录初始化Git仓库
git init

# 在指定目录初始化Git仓库
git init <directory>
# 例如:git init my-project
2.2 克隆现有仓库

从远程仓库克隆:

代码语言:javascript
复制
# 克隆远程仓库
git clone <repository-url>
# 例如:git clone https://github.com/user/repo.git

# 克隆远程仓库到指定目录
git clone <repository-url> <directory>
# 例如:git clone https://github.com/user/repo.git my-local-repo

# 克隆时指定分支
git clone -b <branch-name> <repository-url>
# 例如:git clone -b develop https://github.com/user/repo.git

# 克隆时不下载历史记录(浅克隆)
git clone --depth 1 <repository-url>
2.3 查看仓库信息
代码语言:javascript
复制
# 查看当前仓库的状态
git status

# 查看仓库的配置信息
git config --list

# 查看仓库的远程连接
git remote -v
2.4 初始化仓库时的常用文件
  • .gitignore:指定Git应忽略的文件和目录
  • README.md:项目说明文档
  • LICENSE:项目许可证文件
  • CONTRIBUTING.md:贡献指南
代码语言:javascript
复制
# 创建基本的.gitignore文件示例(Python项目)
echo "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# Virtual environments\nvenv/\n.env\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\n# IDE directories and files\n.idea/\n.vscode/\n*.swp\n*.swo\n*~\n" > .gitignore

3. Git工作区操作(查看状态、添加文件、提交更改)

3.1 查看工作区状态
代码语言:javascript
复制
# 查看当前工作区的状态
git status

# 以简洁模式查看状态
git status -s
# 或 git status --short
3.2 添加文件到暂存区
代码语言:javascript
复制
# 添加指定文件到暂存区
git add <file>
# 例如:git add index.html

# 添加多个文件到暂存区
git add <file1> <file2>
# 例如:git add index.html style.css

# 添加当前目录下的所有文件(包括子目录)到暂存区
git add .

# 添加当前目录下的所有.py文件到暂存区
git add *.py

# 交互式添加文件
git add -i
# 或 git add --interactive

# 仅添加文件的一部分到暂存区
git add -p <file>
# 或 git add --patch <file>
3.3 从暂存区移除文件
代码语言:javascript
复制
# 从暂存区移除指定文件,但保留工作区中的文件
git reset HEAD <file>
# 例如:git reset HEAD index.html

# 从暂存区和工作区同时移除指定文件
git rm <file>
# 例如:git rm index.html

# 从暂存区移除文件,但保留工作区中的文件(更现代的方式)
git restore --staged <file>
# 例如:git restore --staged index.html
3.4 提交更改
代码语言:javascript
复制
# 提交暂存区的更改,需要输入提交信息
git commit

# 提交暂存区的更改,并指定提交信息
git commit -m "Commit message"
# 例如:git commit -m "Add index.html"

# 提交时显示diff信息
git commit -v
# 或 git commit --verbose

# 提交所有已跟踪文件的更改(跳过git add步骤)
git commit -a
# 或 git commit --all

# 修改最后一次提交的信息
git commit --amend

# 修改最后一次提交的信息,不打开编辑器
git commit --amend -m "New commit message"

# 将当前更改添加到最后一次提交
git commit --amend --no-edit
3.5 查看工作区与暂存区的差异
代码语言:javascript
复制
# 查看工作区与暂存区的差异
git diff

# 查看指定文件在工作区与暂存区的差异
git diff <file>
# 例如:git diff index.html

# 查看暂存区与本地仓库的差异
git diff --staged
# 或 git diff --cached

# 以统计信息显示差异
git diff --stat

4. Git分支管理(创建、切换、推送、拉取、合并、删除)

4.1 查看分支
代码语言:javascript
复制
# 查看所有本地分支
git branch

# 查看所有本地和远程分支
git branch -a
# 或 git branch --all

# 查看分支的详细信息(如最后一次提交)
git branch -v
# 或 git branch --verbose

# 查看已合并到当前分支的分支
git branch --merged

# 查看未合并到当前分支的分支
git branch --no-merged
4.2 创建分支
代码语言:javascript
复制
# 创建一个新的分支
git branch <branch-name>
# 例如:git branch feature/login

# 基于指定提交创建新分支
git branch <branch-name> <commit-id>
# 例如:git branch feature/fix-bug abc123

# 基于远程分支创建新分支
git branch <branch-name> origin/<remote-branch-name>
# 例如:git branch develop origin/develop
4.3 切换分支
代码语言:javascript
复制
# 切换到指定分支
git checkout <branch-name>
# 例如:git checkout develop

# 创建并切换到新分支
git checkout -b <new-branch-name>
# 例如:git checkout -b feature/dashboard

# 创建并切换到基于指定提交的新分支
git checkout -b <new-branch-name> <commit-id>
# 例如:git checkout -b fix/issue-123 abc123

# 创建并切换到基于远程分支的新分支
git checkout -b <new-branch-name> origin/<remote-branch-name>
# 例如:git checkout -b develop origin/develop

# 使用更现代的命令切换分支
git switch <branch-name>
# 例如:git switch develop

# 创建并切换到新分支(更现代的方式)
git switch -c <new-branch-name>
# 例如:git switch -c feature/profile
4.4 推送分支到远程仓库
代码语言:javascript
复制
# 推送本地分支到远程仓库
git push origin <branch-name>
# 例如:git push origin feature/login

# 设置上游分支(使后续的git push和git pull不需要指定分支名)
git push --set-upstream origin <branch-name>
# 或简写为 git push -u origin <branch-name>
# 例如:git push -u origin feature/login

# 强制推送分支到远程仓库(谨慎使用)
git push --force origin <branch-name>
# 或简写为 git push -f origin <branch-name>

# 安全地强制推送(保留远程分支的提交)
git push --force-with-lease origin <branch-name>
4.5 拉取远程分支到本地
代码语言:javascript
复制
# 从远程仓库拉取最新的更改并合并到当前分支
git pull origin <branch-name>
# 例如:git pull origin develop

# 从远程仓库拉取最新的更改但不合并
git fetch origin

# 拉取远程分支并在本地创建对应的分支
git checkout -b <local-branch-name> origin/<remote-branch-name>
# 例如:git checkout -b feature/new-design origin/feature/new-design

# 使用fetch和merge组合拉取远程分支(更安全的方式)
git fetch origin
# 然后切换到目标分支
# 然后合并远程分支到当前分支
git merge origin/<branch-name>
4.6 合并分支
代码语言:javascript
复制
# 切换到目标分支(例如,要将feature分支合并到main分支)
git checkout main

# 合并指定分支到当前分支
git merge <branch-name>
# 例如:git merge feature/login

# 合并时创建合并提交(即使可以快进合并)
git merge --no-ff <branch-name>
# 例如:git merge --no-ff feature/login

# 使用压缩合并(将多个提交压缩为一个)
git merge --squash <branch-name>
# 例如:git merge --squash feature/login

# 中止合并过程
git merge --abort

# 解决冲突后,标记冲突已解决
git add <conflicted-file>
# 然后提交解决冲突的结果
git commit -m "Resolve merge conflict"
4.7 删除分支
代码语言:javascript
复制
# 删除本地分支(分支必须已合并)
git branch -d <branch-name>
# 例如:git branch -d feature/login

# 强制删除本地分支(即使分支有未合并的更改)
git branch -D <branch-name>
# 例如:git branch -D feature/login

# 删除远程分支
git push origin --delete <branch-name>
# 或简写为 git push origin :<branch-name>
# 例如:git push origin --delete feature/login

5. Git远程仓库操作(添加、查看、同步、推送、拉取)

5.1 查看远程仓库
代码语言:javascript
复制
# 查看所有远程仓库
git remote

# 查看所有远程仓库的详细信息(包括URL)
git remote -v
# 或 git remote --verbose

# 查看指定远程仓库的详细信息
git remote show <remote-name>
# 例如:git remote show origin
5.2 添加远程仓库
代码语言:javascript
复制
# 添加远程仓库
git remote add <remote-name> <remote-url>
# 例如:git remote add origin https://github.com/user/repo.git

# 添加多个远程仓库
git remote add <remote-name> <remote-url>
# 例如:git remote add upstream https://github.com/org/repo.git
5.3 修改远程仓库
代码语言:javascript
复制
# 修改远程仓库的URL
git remote set-url <remote-name> <new-url>
# 例如:git remote set-url origin git@github.com:user/repo.git

# 修改远程仓库的名称
git remote rename <old-name> <new-name>
# 例如:git remote rename origin upstream
5.4 删除远程仓库
代码语言:javascript
复制
# 删除指定的远程仓库
git remote remove <remote-name>
# 或 git remote rm <remote-name>
# 例如:git remote remove upstream
5.5 从远程仓库获取更改
代码语言:javascript
复制
# 从所有远程仓库获取最新的更改
git fetch --all

# 从指定远程仓库获取最新的更改
git fetch <remote-name>
# 例如:git fetch origin

# 从指定远程仓库获取特定分支的更改
git fetch <remote-name> <branch-name>
# 例如:git fetch origin develop
5.6 推送到远程仓库
代码语言:javascript
复制
# 推送到默认远程仓库和分支
git push

# 推送到指定远程仓库和分支
git push <remote-name> <branch-name>
# 例如:git push origin main

# 推送所有分支到远程仓库
git push --all <remote-name>
# 例如:git push --all origin

# 推送所有标签到远程仓库
git push --tags <remote-name>
# 例如:git push --tags origin

# 强制推送(谨慎使用)
git push --force <remote-name> <branch-name>
# 或简写为 git push -f <remote-name> <branch-name>
5.7 同步远程仓库
代码语言:javascript
复制
# 同步远程仓库的所有分支和标签
git remote update

# 检查本地分支与远程分支的差异
git diff <branch-name> origin/<branch-name>
# 例如:git diff main origin/main

6. Git历史记录操作(查看日志、回滚、重置)

6.1 查看提交历史
代码语言:javascript
复制
# 查看所有提交历史
git log

# 查看简洁的提交历史
git log --oneline

# 查看最近n次提交
git log -n <number>
# 例如:git log -n 5

# 查看分支合并图
git log --graph

# 查看分支合并图(简洁模式)
git log --graph --oneline --decorate --all

# 查看指定文件的提交历史
git log <file>
# 例如:git log index.html

# 查看提交历史并显示每次提交的更改内容
git log -p

# 查看提交历史中的差异统计
git log --stat

# 按作者筛选提交历史
git log --author="Author Name"
# 例如:git log --author="John Doe"

# 按提交信息筛选提交历史
git log --grep="keyword"
# 例如:git log --grep="fix bug"

# 查看指定时间段内的提交历史
git log --since="2 weeks ago"
git log --until="2025-09-01"
6.2 回滚到之前的提交
代码语言:javascript
复制
# 创建一个新的提交,撤销指定提交的更改
git revert <commit-id>
# 例如:git revert abc123

# 交互式回滚多个提交
git revert -i <commit-id1> <commit-id2>
# 例如:git revert -i abc123 def456

# 回滚到指定提交,但保留工作区的更改
git reset --soft <commit-id>
# 例如:git reset --soft abc123

# 回滚到指定提交,重置暂存区,但保留工作区的更改
git reset --mixed <commit-id>
# 或简写为 git reset <commit-id>
# 例如:git reset abc123

# 回滚到指定提交,重置暂存区和工作区(谨慎使用)
git reset --hard <commit-id>
# 例如:git reset --hard abc123

# 回滚到上一个提交
git reset --hard HEAD^  # 一个^表示上一个提交,多个^表示多个
# 或 git reset --hard HEAD~1  # 数字表示回滚的步数
6.3 查看特定提交的详细信息
代码语言:javascript
复制
# 查看指定提交的详细信息
git show <commit-id>
# 例如:git show abc123

# 查看指定提交中特定文件的更改
git show <commit-id>:<file>
# 例如:git show abc123:index.html

# 查看最新提交的信息
git show HEAD
6.4 查找丢失的提交
代码语言:javascript
复制
# 查看Git的引用日志(所有HEAD移动记录)
git reflog

# 使用reflog恢复丢失的分支或提交
git checkout -b <branch-name> <commit-id>
# 例如:git checkout -b recover-branch abc123

7. Git高级操作(暂存、标签、子模块、变基)

7.1 Git暂存(Stash)操作
代码语言:javascript
复制
# 暂存当前工作区的更改
git stash

# 暂存当前工作区的更改并添加描述
git stash save "Description"
# 例如:git stash save "Work in progress"

# 查看所有暂存
git stash list

# 查看特定暂存的详细内容
git stash show stash@{n}
# 例如:git stash show stash@{0}

# 查看特定暂存的完整diff
git stash show -p stash@{n}
# 例如:git stash show -p stash@{0}

# 恢复指定的暂存,但保留暂存记录
git stash apply stash@{n}
# 例如:git stash apply stash@{0}

# 恢复最新的暂存
git stash apply

# 恢复指定的暂存,并删除暂存记录
git stash pop stash@{n}
# 例如:git stash pop stash@{0}

# 删除指定的暂存
git stash drop stash@{n}
# 例如:git stash drop stash@{0}

# 删除所有暂存
git stash clear

# 创建一个新分支,并在该分支上应用指定的暂存
git stash branch <branch-name> stash@{n}
# 例如:git stash branch feature/new stash@{0}
7.2 Git标签(Tag)操作
代码语言:javascript
复制
# 列出所有标签
git tag

# 创建轻量级标签
git tag <tag-name>
# 例如:git tag v1.0

# 创建带注释的标签
git tag -a <tag-name> -m "Tag message"
# 例如:git tag -a v1.0 -m "Version 1.0 release"

# 创建指向特定提交的标签
git tag -a <tag-name> <commit-id> -m "Tag message"
# 例如:git tag -a v1.0 abc123 -m "Version 1.0 release"

# 查看标签的详细信息
git show <tag-name>
# 例如:git show v1.0

# 推送指定标签到远程仓库
git push origin <tag-name>
# 例如:git push origin v1.0

# 推送所有标签到远程仓库
git push origin --tags

# 删除本地标签
git tag -d <tag-name>
# 例如:git tag -d v1.0

# 删除远程标签
git push origin --delete <tag-name>
# 或简写为 git push origin :refs/tags/<tag-name>
# 例如:git push origin --delete v1.0
7.3 Git子模块(Submodule)操作
代码语言:javascript
复制
# 在现有仓库中添加子模块
git submodule add <repository-url> <path>
# 例如:git submodule add https://github.com/user/library.git libs/library

# 克隆包含子模块的仓库
git clone <repository-url>
cd <repository>
git submodule update --init --recursive

# 一次性克隆包含子模块的仓库
git clone --recurse-submodules <repository-url>

# 更新子模块到最新版本
git submodule update --remote

# 查看子模块的状态
git submodule status

# 进入子模块目录
cd <submodule-path>

# 在父仓库中提交子模块的更新
git add <submodule-path>
git commit -m "Update submodule"

# 移除子模块
git submodule deinit <submodule-path>
git rm <submodule-path>
7.4 Git变基(Rebase)操作
代码语言:javascript
复制
# 变基当前分支到指定分支
git rebase <branch-name>
# 例如:git rebase develop

# 交互式变基(可以编辑、合并、删除提交)
git rebase -i <commit-id>
# 或 git rebase --interactive <commit-id>
# 例如:git rebase -i HEAD~5  # 变基最近5次提交

# 继续变基过程(解决冲突后)
git rebase --continue

# 跳过当前提交
git rebase --skip

# 中止变基过程
git rebase --abort

# 变基时保留合并提交
git rebase --preserve-merges <branch-name>
# 或 git rebase -p <branch-name>

# 将一个分支的特定提交变基到另一个分支
git rebase --onto <target-branch> <start-commit> <end-commit>
# 例如:git rebase --onto develop abc123 def456

8. GitHub平台详解

GitHub是全球最大的Git托管平台,拥有超过8300万开发者和2亿多个仓库。它提供了代码托管、项目管理、团队协作等丰富功能。

8.1 GitHub的注册与登录
  1. 访问GitHub官网(https://github.com/)
  2. 点击"Sign up"按钮,填写用户名、邮箱和密码,完成注册
  3. 注册成功后,使用你的邮箱和密码登录GitHub
8.2 创建GitHub仓库
  1. 登录GitHub后,点击右上角的"+“按钮,选择"New repository”
  2. 填写仓库信息:
    • Repository name:仓库名称
    • Description:仓库描述(可选)
    • Public/Private:选择仓库的可见性
    • Initialize this repository with a README:是否初始化README文件
    • Add .gitignore:选择一个.gitignore模板
    • Choose a license:选择一个许可证
  3. 点击"Create repository"按钮,创建仓库
8.3 克隆GitHub仓库到本地

在GitHub上打开你要克隆的仓库

点击"Code"按钮,复制仓库的URL

打开命令行工具,导航到你要存放代码的目录

执行以下命令克隆仓库:

代码语言:javascript
复制
git clone https://github.com/your-username/your-repository.git

克隆完成后,导航到克隆的仓库目录:

代码语言:javascript
复制
cd your-repository
8.4 将本地代码推送到GitHub

在本地创建或修改代码文件

使用以下命令将更改添加到暂存区:

代码语言:javascript
复制
git add .  # 添加所有更改的文件
# 或者 git add filename  # 添加特定的文件

提交更改:

代码语言:javascript
复制
git commit -m "Commit message"  # 提交信息应该简洁明了地描述更改的内容

推送到GitHub:

代码语言:javascript
复制
git push origin main  # 推送到main分支
8.5 GitHub的核心功能
  • Issues:用于跟踪任务、bug和需求
  • Pull Requests:用于代码审查和合并更改
  • Projects:用于项目管理和任务跟踪
  • Actions:用于自动化工作流(如CI/CD)
  • Wiki:用于文档管理
  • Discussions:用于团队讨论和交流
  • Pages:用于托管静态网站
  • Packages:用于发布和管理软件包
  • Copilot:AI辅助编程工具
  • CodeSpaces:在线开发环境

9. GitCode平台详解

GitCode是一个专注于开发者服务的代码托管平台,提供了代码托管、项目管理、CI/CD等功能,特别适合国内开发者使用。

9.1 GitCode的注册与登录
  1. 访问GitCode官网(https://gitcode.com/)
  2. 点击"注册"按钮,填写用户名、邮箱和密码,完成注册
  3. 注册成功后,使用你的邮箱和密码登录GitCode
9.2 创建GitCode仓库
  1. 登录GitCode后,点击右上角的"+“按钮,选择"新建项目”
  2. 填写仓库信息:
    • 项目名称:仓库名称
    • 路径:仓库的URL路径
    • 项目描述:仓库描述(可选)
    • 可见性级别:选择仓库的可见性(公开/内部/私有)
    • 初始化仓库:是否初始化README、.gitignore和许可证文件
  3. 点击"创建项目"按钮,创建仓库
9.3 克隆GitCode仓库到本地

在GitCode上打开你要克隆的仓库

点击"克隆"按钮,复制仓库的URL

打开命令行工具,导航到你要存放代码的目录

执行以下命令克隆仓库:

代码语言:javascript
复制
git clone https://gitcode.com/your-username/your-repository.git

克隆完成后,导航到克隆的仓库目录:

代码语言:javascript
复制
cd your-repository
9.4 将本地代码推送到GitCode

在本地创建或修改代码文件

使用以下命令将更改添加到暂存区:

代码语言:javascript
复制
git add .  # 添加所有更改的文件
# 或者 git add filename  # 添加特定的文件

提交更改:

代码语言:javascript
复制
git commit -m "Commit message"  # 提交信息应该简洁明了地描述更改的内容

推送到GitCode:

代码语言:javascript
复制
git push origin main  # 推送到main分支
9.5 GitCode的核心功能
  • 代码托管:支持Git代码托管和版本控制
  • 项目管理:提供任务看板、里程碑等功能
  • 代码审查:支持合并请求和代码评审
  • CI/CD:提供自动化构建和部署服务
  • Wiki:用于文档管理
  • 问题追踪:用于跟踪bug和需求
  • 代码片段:用于分享代码片段
  • 在线IDE:提供在线编程环境
  • 代码统计:提供代码统计和分析功能

10. Gitee平台详解

Gitee(码云)是国内最大的代码托管平台,由开源中国推出,提供了代码托管、项目管理、代码质量分析等功能。

10.1 Gitee的注册与登录
  1. 访问Gitee官网(https://gitee.com/)
  2. 点击"注册"按钮,填写用户名、邮箱和密码,完成注册
  3. 注册成功后,使用你的用户名和密码登录Gitee
10.2 创建Gitee仓库
  1. 登录Gitee后,点击右上角的"+“按钮,选择"新建仓库”
  2. 填写仓库信息:
    • 仓库名称:仓库名称
    • 路径:仓库的URL路径
    • 仓库介绍:仓库描述(可选)
    • 是否开源:选择仓库的可见性(公开/私有)
    • 初始化仓库:是否初始化README、.gitignore和许可证文件
  3. 点击"创建"按钮,创建仓库
10.3 克隆Gitee仓库到本地

在Gitee上打开你要克隆的仓库

点击"克隆/下载"按钮,复制仓库的URL

打开命令行工具,导航到你要存放代码的目录

执行以下命令克隆仓库:

代码语言:javascript
复制
git clone https://gitee.com/your-username/your-repository.git

克隆完成后,导航到克隆的仓库目录:

代码语言:javascript
复制
cd your-repository
10.4 将本地代码推送到Gitee

在本地创建或修改代码文件

使用以下命令将更改添加到暂存区:

代码语言:javascript
复制
git add .  # 添加所有更改的文件
# 或者 git add filename  # 添加特定的文件

提交更改:

代码语言:javascript
复制
git commit -m "Commit message"  # 提交信息应该简洁明了地描述更改的内容

推送到Gitee:

代码语言:javascript
复制
git push origin master  # 推送到master分支(Gitee默认分支名称是master)
10.5 Gitee的核心功能
  • 代码托管:支持Git代码托管和版本控制
  • 项目管理:提供任务看板、里程碑等功能
  • 代码审查:支持合并请求和代码评审
  • CI/CD:提供自动化构建和部署服务(Gitee Go)
  • 文档管理:提供Wiki和Pages服务
  • 代码质量分析:提供代码静态分析和质量评估
  • 代码片段:用于分享代码片段
  • Gitee Pages:用于托管静态网站
  • Gitee Go:企业级CI/CD平台

11. Issue管理与Pull Request/Merge Request

11.1 创建Issue

GitHub:

  1. 在仓库页面点击"Issues"标签
  2. 点击"New issue"按钮
  3. 填写Issue的标题和描述
  4. 可以添加标签、指派负责人、设置里程碑等
  5. 点击"Submit new issue"按钮创建Issue

GitCode:

  1. 在仓库页面点击"问题"标签
  2. 点击"新建问题"按钮
  3. 填写Issue的标题和描述
  4. 可以添加标签、指派负责人、设置里程碑等
  5. 点击"提交问题"按钮创建Issue

Gitee:

  1. 在仓库页面点击"Issues"标签
  2. 点击"新建Issue"按钮
  3. 填写Issue的标题和描述
  4. 可以添加标签、指派负责人、设置里程碑等
  5. 点击"创建"按钮创建Issue
11.2 管理Issue
  • 分配Issue:将Issue分配给团队成员
  • 添加标签:使用标签对Issue进行分类(如bug、feature、documentation等)
  • 设置里程碑:将Issue与特定的里程碑关联
  • 添加评论:在Issue中添加评论,讨论解决方案
  • 关闭Issue:当Issue解决后,关闭它
  • 重新打开Issue:如果Issue没有完全解决,可以重新打开它
  • 关联Pull Request:在Pull Request中引用Issue,自动关闭相关Issue
11.3 Pull Request/Merge Request

Pull Request(GitHub)或Merge Request(GitCode/Gitee)是团队协作中的重要功能,它允许开发者提交自己的代码更改,并请求将这些更改合并到主分支。

创建Pull Request/Merge Request:

  1. 确保你的代码更改已经推送到远程分支
  2. 在仓库页面点击"Pull requests"(GitHub)或"合并请求"(GitCode/Gitee)标签
  3. 点击"New pull request"(GitHub)或"新建合并请求"(GitCode/Gitee)按钮
  4. 选择源分支和目标分支
  5. 填写Pull Request/Merge Request的标题和描述
  6. 可以添加评论、指派负责人、设置里程碑等
  7. 点击"Create pull request"(GitHub)或"提交合并请求"(GitCode/Gitee)按钮创建

代码审查:

  1. 团队成员可以在Pull Request/Merge Request中查看代码更改
  2. 可以添加评论,提出修改建议
  3. 可以批准或拒绝Pull Request/Merge Request
  4. 可以进行多次迭代,直到代码满足要求

合并Pull Request/Merge Request:

  1. 当代码审查通过后,可以合并Pull Request/Merge Request
  2. 选择合并方式(如Create a merge commit、Squash and merge、Rebase and merge等)
  3. 点击"Merge pull request"(GitHub)或"合并"(GitCode/Gitee)按钮完成合并

12. 平台特性对比与选择建议

12.1 三大平台的特性对比

特性

GitHub

GitCode

Gitee

用户规模

全球最大(8300万+开发者)

国内较大

国内最大

仓库数量

2亿+

数百万

数百万

访问速度(国内)

较慢

较快

很快

免费额度

私有仓库限制(3人以下)

私有仓库限制(5人以下)

私有仓库限制(5人以下)

CI/CD服务

GitHub Actions

GitCode CI/CD

Gitee Go

代码审查

支持

支持

支持

项目管理

支持

支持

支持

文档服务

GitHub Pages

GitCode Pages

Gitee Pages

特色功能

Copilot、CodeSpaces

代码片段、在线IDE

代码质量分析、开源中国社区

国际化支持

强

中

中

企业级功能

丰富

适中

丰富

安全性

高

高

高

集成能力

强

强

强

12.2 平台选择建议
  • 个人开源项目:GitHub是首选,拥有最大的开源社区和最多的用户
  • 国内团队协作:Gitee或GitCode可能更适合,访问速度更快,本土化服务更好
  • 跨国团队协作:GitHub可能更适合,国际知名度高,功能完善
  • 敏感项目:如果项目有安全或合规要求,建议选择国内平台(GitCode或Gitee)或使用企业版
  • 学生和教育机构:GitHub和Gitee都提供教育优惠计划,可根据需求选择

13. 团队协作最佳实践

13.1 分支管理策略
  • 主分支(main/master):包含稳定的、可发布的代码
  • 开发分支(develop):包含最新的开发代码
  • 功能分支(feature):用于开发新功能
  • 修复分支(fix/bugfix):用于修复bug
  • 发布分支(release):用于准备发布的代码
  • 热修复分支(hotfix):用于紧急修复生产环境的问题
13.2 代码提交规范
  • 提交信息应该简洁明了,描述更改的内容和原因
  • 使用一致的提交信息格式,如:type(scope): subject
    • type:提交的类型(如feat、fix、docs、style、refactor、test、chore等)
    • scope:提交的范围(可选)
    • subject:提交的简短描述
  • 避免提交过大的更改,尽量保持每个提交的粒度较小
  • 每个提交应该只包含一个逻辑上的更改
  • 提交前运行测试,确保代码可以正常工作
13.3 代码审查流程
  • 每次代码更改都应该通过Pull Request/Merge Request进行审查
  • 至少有一位团队成员审查代码后才能合并
  • 审查者应该关注代码质量、逻辑正确性、潜在的bug等
  • 使用代码审查工具(如GitHub的代码审查功能)提高效率
  • 审查过程中保持友好和建设性的沟通
13.4 持续集成/持续部署
  • 设置自动化的构建和测试流程
  • 使用CI/CD工具(如GitHub Actions、GitCode CI/CD、Gitee Go)自动化部署过程
  • 确保每次代码更改都经过测试才能合并到主分支
  • 设置自动化的代码质量检查
  • 建立完善的测试套件,包括单元测试、集成测试和端到端测试
13.5 文档管理
  • 维护清晰、更新及时的项目文档
  • 使用README.md描述项目的基本信息和使用方法
  • 使用Wiki详细记录项目的架构、API等信息
  • 为代码添加适当的注释
  • 使用文档生成工具(如JSDoc、Sphinx等)自动生成API文档

14. 自动化工作流配置

自动化工作流可以帮助你节省时间,提高效率。下面介绍如何在三大平台上配置基本的自动化工作流。

14.1 GitHub Actions配置

GitHub Actions是GitHub提供的自动化工作流服务,可以帮助你自动化构建、测试和部署等过程。

基本配置示例:

在仓库的.github/workflows/目录下创建一个名为ci.yml的文件:

代码语言:javascript
复制
name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: '3.10'
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Run tests
      run: |
        python -m pytest
14.2 GitCode CI/CD配置

GitCode CI/CD是GitCode提供的自动化工作流服务,可以帮助你自动化构建、测试和部署等过程。

基本配置示例:

在仓库的根目录下创建一个名为.gitlab-ci.yml的文件(GitCode使用与GitLab相同的CI/CD配置格式):

代码语言:javascript
复制
stages:
  - test

run-tests:
  stage: test
  image: python:3.10
  script:
    - pip install --upgrade pip
    - pip install -r requirements.txt
    - python -m pytest
  tags:
    - gitcode-ci
14.3 Gitee Go配置

Gitee Go是Gitee提供的自动化工作流服务,可以帮助你自动化构建、测试和部署等过程。

基本配置示例:

在Gitee仓库页面,点击"CI/CD" -> “Gitee Go” -> “新建流水线”,然后配置:

代码语言:javascript
复制
version: '1.0'
stages:
  - stage: 
    name: Test
    jobs:
      - job: Test
        steps:
          - checkout
          - run: |
              pip install --upgrade pip
              pip install -r requirements.txt
              python -m pytest
        strategy:
          matrix:
            python: [ '3.10' ]
        container: python:${{ python }}
14.4 自动化工作流的常见场景
  • 自动测试:每次代码更改后自动运行测试
  • 代码质量检查:自动运行代码质量工具(如ESLint、Flake8等)
  • 自动构建:自动构建项目的可执行文件或发布包
  • 自动部署:自动部署到测试或生产环境
  • 自动发布:自动创建版本标签并发布新版本
  • 自动文档生成:自动生成和更新文档

15. 常见问题解决与实用技巧

15.1 常见问题解决

问题1:推送代码时出现权限错误

解决方案:

  • 检查你是否有仓库的推送权限
  • 检查你的Git凭证是否正确
  • 尝试使用SSH协议而不是HTTPS协议
  • 重新配置Git凭证管理器

问题2:合并分支时出现冲突

解决方案:

  • 手动编辑冲突的文件,解决冲突
  • 使用git add命令标记冲突已解决
  • 提交解决冲突的结果
  • 继续合并过程
  • 使用可视化工具(如VS Code的冲突解决器)辅助解决冲突

问题3:忘记提交某些文件

解决方案:

  • 如果你已经提交但还没有推送,可以使用git commit --amend命令修改最近的提交
  • 如果你已经推送,可以创建一个新的提交,包含忘记的文件

问题4:误删分支

解决方案:

  • 如果分支已经推送到远程仓库,可以从远程仓库恢复:git checkout -b branch-name origin/branch-name
  • 如果分支没有推送到远程仓库,但你知道分支的最后一个提交ID,可以使用:git checkout -b branch-name commit-id
  • 使用git reflog查找丢失的分支引用

问题5:Git工作区变得混乱

解决方案:

  • 使用git stash暂存当前的更改
  • 使用git reset --hard重置工作区(谨慎使用)
  • 使用git clean -f删除未跟踪的文件
  • 使用git clean -fd删除未跟踪的文件和目录
15.2 实用技巧
代码语言:javascript
复制
# 查看Git状态
git status

# 查看提交历史
git log
# 简洁的提交历史
git log --oneline
# 查看分支合并图
git log --graph --oneline --decorate --all

# 撤销工作区的更改
git checkout -- filename

# 撤销暂存区的更改
git reset HEAD filename

# 回滚到某个提交
git reset --hard commit-id

# 查看文件的更改历史
git blame filename

# 暂存当前工作区的更改
git stash
# 查看所有暂存
git stash list
# 恢复暂存的更改
git stash apply
# 恢复并删除暂存
git stash pop

# 查找文件中的内容
git grep "search-term"
# 例如:git grep "function"

# 计算代码统计信息
git diff --shortstat HEAD~1

# 显示简短的Git状态
git status -s

# 显示最近的提交
git show

# 显示本地分支与远程分支的关联
git branch -vv

# 列出所有远程分支
git branch -r

# 清理未引用的对象
git gc --prune=now

# 检查Git仓库的健康状况
git fsck

实践练习

  1. 练习1:Git平台注册与仓库创建
    • 在GitHub、GitCode和Gitee上分别注册账号
    • 在每个平台上创建一个新的仓库
    • 克隆仓库到本地
  2. 练习2:Git基本操作
    • 在本地创建一个新文件并添加到Git
    • 提交更改到本地仓库
    • 推送到远程仓库
  3. 练习3:分支管理
    • 在本地创建一个新的分支
    • 在新分支上创建或修改一些文件
    • 提交更改并推送到远程仓库
    • 创建一个Pull Request/Merge Request
    • 合并分支
  4. 练习4:Issue管理
    • 在仓库中创建一个新的Issue
    • 分配Issue给自己
    • 添加标签和里程碑
    • 在Issue中添加评论
    • 解决Issue并关闭它
  5. 练习5:Git高级操作
    • 使用Git暂存功能
    • 创建和管理Git标签
    • 尝试Git变基操作
    • 配置Git子模块
  6. 练习6:自动化工作流配置
    • 在GitHub上配置一个基本的GitHub Actions工作流
    • 在GitCode上配置一个基本的GitCode CI/CD工作流
    • 在Gitee上配置一个基本的Gitee Go工作流

结论

要点

描述

价值

全面掌握GitHub、GitCode、Gitee三大平台的使用方法和Git的所有核心操作,提升团队协作效率和代码管理能力

行动

在实际项目中应用所学知识,不断积累经验,探索更多Git高级功能

恭喜你完成了Git平台和Git操作的全面学习!通过本教程,你已经详细了解了Git支持的所有核心操作,包括仓库操作、工作区操作、分支管理、远程仓库操作、历史记录操作和高级操作等。同时,你也学习了GitHub、GitCode和Gitee三大平台的使用方法、Issue管理、Pull Request/Merge Request、团队协作最佳实践和自动化工作流配置等内容。

掌握这些技能对于现代软件开发至关重要,无论是个人开发还是团队协作,都能极大地提高你的工作效率和代码质量。在实际项目中,你可能需要根据项目的具体需求和团队的偏好选择合适的平台,并不断积累使用经验。

记住,实践是掌握这些技能的关键,所以请务必多动手实践,在实际项目中应用所学知识!

参考

来源

描述

Git官方文档

提供权威的Git使用指南

GitHub官方文档

提供GitHub平台的使用指南

GitCode官方文档

提供GitCode平台的使用指南

Gitee官方文档

提供Gitee平台的使用指南

Pro Git

Scott Chacon和Ben Straub的Git权威指南

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 引言
  • 目录
  • 1. Git基础知识与环境配置
    • 1.1 Git是什么
    • 1.2 Git的基本概念
    • 1.3 Git的安装
    • 1.4 Git的基本配置
    • 1.5 Git帮助命令
  • 2. Git仓库操作(创建、克隆、初始化)
    • 2.1 创建新仓库
    • 2.2 克隆现有仓库
    • 2.3 查看仓库信息
    • 2.4 初始化仓库时的常用文件
  • 3. Git工作区操作(查看状态、添加文件、提交更改)
    • 3.1 查看工作区状态
    • 3.2 添加文件到暂存区
    • 3.3 从暂存区移除文件
    • 3.4 提交更改
    • 3.5 查看工作区与暂存区的差异
  • 4. Git分支管理(创建、切换、推送、拉取、合并、删除)
    • 4.1 查看分支
    • 4.2 创建分支
    • 4.3 切换分支
    • 4.4 推送分支到远程仓库
    • 4.5 拉取远程分支到本地
    • 4.6 合并分支
    • 4.7 删除分支
  • 5. Git远程仓库操作(添加、查看、同步、推送、拉取)
    • 5.1 查看远程仓库
    • 5.2 添加远程仓库
    • 5.3 修改远程仓库
    • 5.4 删除远程仓库
    • 5.5 从远程仓库获取更改
    • 5.6 推送到远程仓库
    • 5.7 同步远程仓库
  • 6. Git历史记录操作(查看日志、回滚、重置)
    • 6.1 查看提交历史
    • 6.2 回滚到之前的提交
    • 6.3 查看特定提交的详细信息
    • 6.4 查找丢失的提交
  • 7. Git高级操作(暂存、标签、子模块、变基)
    • 7.1 Git暂存(Stash)操作
    • 7.2 Git标签(Tag)操作
    • 7.3 Git子模块(Submodule)操作
    • 7.4 Git变基(Rebase)操作
  • 8. GitHub平台详解
    • 8.1 GitHub的注册与登录
    • 8.2 创建GitHub仓库
    • 8.3 克隆GitHub仓库到本地
    • 8.4 将本地代码推送到GitHub
    • 8.5 GitHub的核心功能
  • 9. GitCode平台详解
    • 9.1 GitCode的注册与登录
    • 9.2 创建GitCode仓库
    • 9.3 克隆GitCode仓库到本地
    • 9.4 将本地代码推送到GitCode
    • 9.5 GitCode的核心功能
  • 10. Gitee平台详解
    • 10.1 Gitee的注册与登录
    • 10.2 创建Gitee仓库
    • 10.3 克隆Gitee仓库到本地
    • 10.4 将本地代码推送到Gitee
    • 10.5 Gitee的核心功能
  • 11. Issue管理与Pull Request/Merge Request
    • 11.1 创建Issue
    • 11.2 管理Issue
    • 11.3 Pull Request/Merge Request
  • 12. 平台特性对比与选择建议
    • 12.1 三大平台的特性对比
    • 12.2 平台选择建议
  • 13. 团队协作最佳实践
    • 13.1 分支管理策略
    • 13.2 代码提交规范
    • 13.3 代码审查流程
    • 13.4 持续集成/持续部署
    • 13.5 文档管理
  • 14. 自动化工作流配置
    • 14.1 GitHub Actions配置
    • 14.2 GitCode CI/CD配置
    • 14.3 Gitee Go配置
    • 14.4 自动化工作流的常见场景
  • 15. 常见问题解决与实用技巧
    • 15.1 常见问题解决
    • 15.2 实用技巧
  • 实践练习
  • 结论
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档