登录gitee
登录方式:通过网站登录,使用注册时的账号(通常是手机号)和密码进行认证
创建仓库
新建仓库步骤
命名规范:仓库名称应尽量符合规范,避免与已有仓库冲突,建议使用有意义的命名
初始化设置:
选择.gitignore模板
添加README文件作为代码说明文档
使用默认的单分支模型(适合初学者)
仓库属性设置
开源许可:创建时默认为私有仓库,后期可改为开源
模板文件:
LICENSE文件:记录开源许可证信息
README文件:包含中英文两个版本的说明文档
把远端的仓库拉取下来
克隆方式选择
推荐协议:使用HTTPS协议而非SSH协议
SSH需要配置密钥对,过程复杂(所以一般不用)
HTTPS只需输入账号密码即可
克隆操作步骤
命令格式:git clone <仓库HTTPS地址>.git
认证信息:
用户名:gitee网站登录账号
密码:gitee网站登录密码(非系统密码)
结果验证:成功后会生成与仓库同名的本地目录
忽略文件操作
.gitignore文件作用
功能原理:列出需要被git忽略的文件后缀
实际效果:匹配到的文件不会被上传到远端仓库
查看方式:在Linux中使用ls -al查看(因为是隐藏文件)
本地仓库本质
核心组成:名为.git的隐藏目录及其内容
同步机制:
提交操作实质是同步.git目录内容
远端仓库会保存完全相同的.git目录结构
版本控制:.git目录包含分支配置和提交历史等版本信息
写代码并git操作
文件准备与添加
文件拷贝操作:将上级目录的.c和.h文件拷贝到当前目录,使用make dl创建process目录后,将所有.c和.h文件移动到process目录中
git add作用:将新增的文件(之前git没有跟踪的文件)添加到本地仓库的临时区域
特别注意:添加的是新增文件,不是修改已有文件
底层原理:文件经过二进制转码后存入.git目录(具体位置暂不深究)
提交操作详解
git commit命令:
完整格式:git commit -m "提交日志"
强制要求:-m选项后必须跟提交日志内容,否则会报错
日志规范:
禁止空白(必须填写有意义的内容)
禁止随意填写(如"abcd"等无意义内容)
不需要手动添加时间戳(系统自动记录)
commit本质:将临时区域的变更正式合并到本地仓库,此时远端仓库仍未更新
推送操作与完整流程
git push作用:将本地仓库的变更推送到远端服务器,完成代码同步
完整三步流程:
git add .:添加新文件到暂存区
git commit -m "描述":提交到本地仓库
git push:推送到远端仓库
密码提示:push时需要输入git账号密码(非系统root密码)
提交日志的重要性
日志查看方式:通过git log命令可查看完整提交历史,包含:
提交ID(长哈希值)
作者信息(用户名+邮箱)
提交时间戳
提交日志内容
专业要求:
在团队协作中,清晰的日志有助于他人理解代码变更
面试时可能被查看提交历史(如简历附git链接)
错误示例:模糊的日志可能导致后期维护困难,甚至被离职后追责
Git环境配置
安装方法:sudo apt-get install -y git(Linux环境,注意 apt-get和yum的区别)
首次配置:
必须设置用户名:git config --global user.name "姓名简写"
必须设置邮箱:git config --global user.email "真实邮箱"
配置重要性:
这些信息将永久记录在提交历史中
公司内部可能通过邮箱联系代码作者
建议使用真实姓名简写和工作邮箱(避免私人邮箱)
验证忽略文件配置
.gitignore文件配置
配置语法:使用.扩展名格式指定要忽略的文件类型,例如.txt忽略所有文本文件,*.sln忽略Visual Studio解决方案文件
测试方法:
创建测试文件(如test.txt)
执行git status查看文件状态
确认被忽略文件不会出现在待提交列表中
多级目录处理:需要在仓库根目录下的.gitignore文件进行配置才会全局生效
文件状态管理
新增文件检测:git status会显示"Untracked files"表示新文件
修改文件检测:显示"Modified"表示已跟踪文件的修改
批量添加:git add .会自动添加所有未跟踪和修改的文件
提交流程
标准流程:
git add <文件> 或 git add .
git commit -m "提交说明"
git push
提交说明规范:要求明确描述修改内容(如"修复野指针bug"),避免不专业的日志
远程仓库修改操作及冲突解决
冲突产生场景
典型场景:
开发者A在远程仓库直接修改文件
开发者B在本地修改同一文件
开发者B尝试git push时出现冲突
冲突解决方法
强制同步流程:
先执行git pull拉取远程变更
解决可能的合并冲突
重新git push
错误提示:冲突时会显示"rejected"提示,要求先整合远程变更
文件重命名操作
正确方法:使用git mv 旧文件名 新文件名而非直接重命名
操作流程:
git mv test.txt hello.txt
提交重命名操作
推送变更
文件删除操作
标准删除:使用git rm 文件名而非直接删除
完整流程:
git rm xx.txt
git commit -m "删除临时文件"
git push
提交记录查看
日志查看:git log显示完整提交历史,包括:
提交者信息
提交时间
提交说明
变更内容
注:所有Git操作建议在仓库根目录下执行以确保全局生效,部分操作(如.gitignore配置)需要提交到仓库才能完全生效。
基础操作
核心
仓库克隆:git clone 用于从远程仓库克隆项目到本地
添加文件:git add 将文件添加到暂存区
提交更改:git commit -m "message" 提交变更并添加描述信息
常用辅助命令
状态检查:git status 查看当前仓库状态
日志查看:git log 查看提交历史记录
文件操作:
git rm 删除文件
git mv 重命名文件
远程同步:git push 将本地提交推送到远程仓库
注意事项
提交不可修改:已提交记录无法直接修改,需删除仓库后重新提交(但会改变提交时间戳)
设计原则:Git设计上不允许随意修改历史记录,这是版本控制系统的核心特性
常见问题
提交绿点问题
更新机制:GitHub等平台的贡献绿点不是实时更新,通常会在夜间批量处理
解决方案:正常提交2-3天后会自动显示,无需特殊处理
认证配置
密码输入:git push时会要求输入用户名和密码
免密配置:
技术上支持配置免密码登录(课件中有具体方法)
但不推荐初学者使用免密配置,原因有二:
频繁输入有助于记忆重要密码
提交门槛能防止草率提交错误代码
建议
练习方式:
可使用Git Bash命令行操作(支持Linux命令)
也可使用图形界面工具(如TortoiseGit)
学习路径:
先掌握基础命令
后续可逐步学习分支管理、版本回退等高级功能
提交习惯:
建议保持手动输入密码的习惯
工作熟练后可考虑配置免密