1. Git与Gitee基础环境搭建
1.1 Linux系统Git安装与配置
在Linux系统上使用Git前,需要先确保Git客户端已正确安装。不同发行版的安装命令略有差异:
# Ubuntu/Debian系 sudo apt update && sudo apt install -y git # CentOS/RHEL系 sudo yum install -y git # Arch Linux sudo pacman -S git安装完成后需要进行基础身份配置,这些信息会出现在每次提交记录中:
git config --global user.name "你的用户名" git config --global user.email "你的邮箱" git config --global core.editor vim # 设置默认文本编辑器提示:使用
--global参数会将配置保存在~/.gitconfig文件中,如需针对特定项目使用不同身份,可在项目目录下执行不带--global的相同命令。
1.2 SSH密钥生成与配置
安全推送代码到Gitee推荐使用SSH协议,首先需要生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"执行后会提示保存位置(默认~/.ssh/id_rsa)和设置密码(可选)。生成后需要将公钥添加到Gitee:
- 查看公钥内容:
cat ~/.ssh/id_rsa.pub - 登录Gitee → 右上角头像 → 设置 → SSH公钥
- 粘贴公钥内容,标题自动生成或手动填写
验证连接是否成功:
ssh -T git@gitee.com首次连接会提示确认指纹信息,输入yes后应看到欢迎信息。
2. 本地仓库与远程仓库关联
2.1 从零初始化新仓库
对于全新项目,初始化本地仓库并关联远程:
mkdir project_name && cd project_name git init touch README.md # 创建初始文件 git add README.md git commit -m "initial commit"在Gitee创建新仓库(不要初始化README和.gitignore),然后关联远程:
git remote add origin git@gitee.com:yourname/project_name.git git push -u origin master注意:Gitee默认分支现为main而非master,若遇到分支不匹配错误,可使用
git branch -M main重命名本地分支后再推送。
2.2 关联已有本地仓库
对于已存在的本地仓库,只需添加远程地址:
cd existing_repo git remote add gitee git@gitee.com:yourname/repo_name.git查看当前远程仓库配置:
git remote -v若需要修改已存在的远程地址:
git remote set-url origin git@gitee.com:yourname/new_repo.git3. 日常推送操作全流程
3.1 标准推送工作流
典型的代码修改推送流程如下:
# 1. 查看当前修改状态 git status # 2. 添加修改到暂存区 git add . # 添加所有修改 # 或 git add file1 file2 指定文件 # 3. 提交到本地仓库 git commit -m "描述性提交信息" # 4. 拉取远程最新变更(避免冲突) git pull --rebase origin master # 5. 推送到Gitee git push origin master3.2 分支管理策略
推荐使用功能分支工作流:
# 创建并切换新分支 git checkout -b feature-branch # 开发完成后合并到主分支 git checkout master git merge feature-branch --no-ff # 保留合并记录 git push origin master # 删除已合并分支 git branch -d feature-branch对于重要项目,建议在Gitee仓库设置中开启分支保护,禁止直接向master分支推送。
4. 常见问题排查与解决
4.1 推送被拒绝错误处理
当遇到[rejected] master -> master (non-fast-forward)错误时,说明远程有本地不包含的新提交。解决方法:
# 方法1:合并远程变更 git pull origin master # 解决可能出现的冲突后 git push origin master # 方法2:强制推送(慎用,会覆盖远程历史) git push -f origin master重要:强制推送会重写历史记录,在团队协作项目中应避免使用,除非是私有分支。
4.2 SSH连接问题排查
若SSH连接失败,可按以下步骤排查:
检查SSH密钥是否加载:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa验证Gitee服务器连接:
ssh -vT git@gitee.com检查防火墙设置:
sudo ufw status # Ubuntu sudo systemctl status firewalld # CentOS测试代理设置(如有):
unset http_proxy https_proxy
4.3 大文件推送失败处理
Gitee默认限制单个文件不超过100MB。如需管理大文件:
安装Git LFS:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt install git-lfs git lfs install跟踪大文件类型:
git lfs track "*.psd" git add .gitattributes正常提交推送即可
5. 高级配置与优化技巧
5.1 Git配置优化
推荐添加以下配置提升使用体验:
# 颜色输出 git config --global color.ui auto # 别名设置 git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status # 自动纠正命令拼写 git config --global help.autocorrect 1 # 设置默认推送行为 git config --global push.default current5.2 忽略文件配置
创建.gitignore文件排除不需要版本控制的文件:
# 编译生成文件 *.o *.so *.dll # 编辑器临时文件 .*.swp .idea/ .vscode/ # 系统文件 .DS_Store Thumbs.db # 日志和数据库文件 *.log *.sqlite5.3 子模块管理
当项目依赖其他仓库时,可使用子模块:
# 添加子模块 git submodule add git@gitee.com:other/repo.git path/to/submodule # 克隆包含子模块的项目 git clone --recurse-submodules git@gitee.com:your/repo.git # 更新子模块 git submodule update --init --recursive6. 自动化与持续集成
6.1 Git Hooks应用
利用客户端钩子自动化任务,例如提交前检查:
# 创建pre-commit钩子 vim .git/hooks/pre-commit示例内容(检查Python语法):
#!/bin/sh flake8 . || exit 1记得添加执行权限:chmod +x .git/hooks/pre-commit
6.2 Gitee Pages自动部署
利用Gitee Pages功能自动部署静态网站:
- 在仓库设置中开启Gitee Pages服务
- 确保网站文件在指定分支(如gh-pages)或目录(如docs)
- 每次推送后手动点击"更新"按钮(免费用户)或配置Webhook自动更新
6.3 CI/CD集成
Gitee提供基于GoCD的持续集成服务,配置步骤:
- 仓库根目录创建
.gitee/.gitee-ci.yml文件 - 示例配置:
version: '1.0' stages: - build build: stage: build script: - echo "开始构建" - make build- 提交后可在仓库的"流水线"标签查看执行结果