Gitee代码托管与Git操作全指南

1. 本地代码上传到Gitee远程仓库全流程

对于开发者而言,将本地代码托管到远程仓库是日常开发的基础操作。Gitee作为国内主流的代码托管平台,其操作流程与GitHub类似但更符合国内开发者的使用习惯。下面我将详细介绍从零开始将本地代码推送到Gitee远程仓库的完整步骤。

1.1 环境准备与初始化

首先确保本地已安装Git。可以通过命令git --version检查是否安装。如果未安装,需要从Git官网下载对应操作系统的安装包。安装过程中记得勾选"Add to PATH"选项以便在命令行中使用。

安装完成后需要进行基础配置:

git config --global user.name "你的用户名" git config --global user.email "你的邮箱"

这些信息会记录在每次提交中,建议使用Gitee账号的注册邮箱。配置完成后,在项目根目录执行:

git init

这会在当前目录创建.git隐藏文件夹,标志着本地仓库初始化完成。

1.2 关联远程仓库

在Gitee上创建新仓库时,建议保持仓库名与本地项目目录名一致。创建完成后会获得仓库的HTTPS或SSH地址。在本地执行以下命令关联远程仓库:

git remote add origin 你的仓库地址

使用SSH方式需要提前配置SSH Key。生成SSH Key的命令:

ssh-keygen -t rsa -C "你的邮箱"

生成的公钥(~/.ssh/id_rsa.pub)需要添加到Gitee账号的SSH公钥设置中。验证SSH连接:

ssh -T git@gitee.com

2. 代码提交与推送操作

2.1 基础提交流程

标准的代码提交包含以下步骤:

git add . # 添加所有修改 git commit -m "提交信息" # 提交到本地仓库 git push -u origin master # 推送到远程

第一次推送需要使用-u参数建立追踪关系,后续推送可简化为git push。

提示:提交信息应清晰描述本次修改内容,建议遵循 约定式提交 规范。

2.2 文件忽略配置

项目中总有些文件不应纳入版本控制,如编译产物、IDE配置等。这时需要创建.gitignore文件:

# 编译产物 *.class *.exe *.dll # 日志文件 *.log # IDE配置 .idea/ .vscode/ # 依赖目录 node_modules/

.gitignore支持通配符,配置后相关文件将不会被git跟踪。

3. 分支管理与冲突解决

3.1 分支操作基础

创建并切换分支:

git branch dev # 创建分支 git checkout dev # 切换分支 # 或使用组合命令 git checkout -b dev

合并分支到master:

git checkout master git merge dev

删除分支:

git branch -d dev # 安全删除 git branch -D dev # 强制删除

3.2 冲突解决实战

当多人修改同一文件的相同位置时会产生冲突。冲突文件会包含类似标记:

<<<<<<< HEAD 本地修改内容 ======= 远程修改内容 >>>>>>> branch-name

解决步骤:

  1. 打开冲突文件,分析差异
  2. 保留需要的代码,删除冲突标记
  3. 重新添加并提交:
git add 冲突文件 git commit -m "解决冲突"

经验:合并前先更新本地代码能减少冲突概率。使用git pull --rebase比直接pull更整洁。

4. 高级操作与实用技巧

4.1 修改提交历史

有时需要修改最近的提交信息:

git commit --amend

要修改更早的提交,需要使用交互式rebase:

git rebase -i HEAD~3 # 修改最近3次提交

4.2 暂存与恢复

临时切换任务时可以使用stash:

git stash # 暂存修改 git stash pop # 恢复修改

查看stash列表:

git stash list

4.3 配置别名提高效率

在~/.gitconfig中添加:

[alias] co = checkout br = branch ci = commit st = status last = log -1 HEAD

这样可以用git co代替git checkout,大幅提升效率。

5. 常见问题排查

5.1 认证失败问题

当出现认证错误时,可以检查:

  1. 是否使用了正确的协议(HTTPS/SSH)
  2. 密码或token是否正确
  3. 对于HTTPS方式,可以尝试使用凭证存储:
git config --global credential.helper store

5.2 推送被拒绝

当远程有本地没有的新提交时,直接push会被拒绝。此时应该先pull:

git pull --rebase git push

5.3 文件权限问题

在Linux/Mac上,文件权限变化可能导致大量"modified"状态。可以关闭权限跟踪:

git config core.fileMode false

6. 可视化工具推荐

虽然命令行功能强大,但可视化工具能提升效率:

  1. VS Code内置的Git功能
  2. GitKraken
  3. Sourcetree
  4. TortoiseGit(Windows)

这些工具都支持Gitee,提供直观的提交历史查看、分支管理等功能。

对于团队项目,建议制定明确的Git工作流,如Git Flow或GitHub Flow,并配合Pull Request进行代码审查。Gitee的PR功能与GitHub类似,是团队协作的重要工具。