实验1:注册 Gitee 账号和环境搭建
【版本】
当前版本号v20200405
版本 | 修改说明 |
---|---|
v20200405 | 优化部分学生容易误解犯错的地方,增加一些常见问题的解答 |
v20200402 | 初始化版本 |
【实验名称】
实验1:注册 Gitee 账号和环境搭建
【实验目的】
- 注册 Gitee 账号
- 搭建 Git 客户端和免密登录
【实验原理】
- 注册 Gitee 账号,创建仓库
- 获取 Git 客户端,通过 Git 访问仓库
【实验环境】
- 操作系统: Windows系统。
- Git 客户端 Cmder
【实验资源】
Git 客户端 cmder.7z:是一个集成 Git 的命令行的终端软件。
文本编辑器 Notepad++:是一个优秀的文本编辑器。
https://pan.baidu.com/s/1gukX79FA_Lcg2IFFaW_hzA#提取码:eenh
【实验步骤】
- 浏览器访问
Gitee.com
,点击“加入码云”,输入你的个人信息,注册一个账号。
下载 Cmder,在电脑本地解压 Cmder ,Cmder 自带了Git 命令。
打开 Cmder,输入 git 测试是否显示命令的使用方法。
- 配置你Git 全局用户名和邮箱。注意替换你的英文名和注册 Gitee 的邮箱。
git config --global user.name "替换为你的英文名"
git config --global user.email "替换为你注册Gitee的邮箱"
接下来配置免密访问
Gitee.com
。为了能够向刚创建的仓库提交代码,我们需要配置加密的密钥到Gitee.com
,实现通讯加密的同时,不需要每次都验证账户输入密码。在Cmder 输入以下命令,注意把邮箱替换为你注册
Gitee.com
的邮箱地址。Cmder 反馈的问题只需要一路按回车即可。
ssh-keygen -t rsa -C "你注册的Gitee.com的邮箱地址"
- 命令结束以后会在你的个人用户目录下生成一个
.ssh
的目录,例如C:\Users\修改为你的Windows用户名\.ssh
。进入此目录会发现有2个生成好的公钥和私钥文件。
#RSA 私钥
id_rsa
#RSA 公钥文件
id_rsa.pub
- 在
.ssh
目录新建2个文本文件,文件名和内容如下。
文件名(注意去除.txt后缀名):config
# gitee 指定私钥路径
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
文件名(注意去除.txt后缀名):known_hosts
gitee.com <粘贴id_rsa.pub的内容,并去掉它结尾的邮箱>
- 登录 Gitee,进入此链接 https://gitee.com/profile/sshkeys 添加公钥。标题可以输入
Pub-202004
,打开 id_rsa.pub,把所有内容复制粘贴到公钥,并保存。
- 打开 Cmder 测试是否能正常认证 Gitee.com
ssh -T git@gitee.com
实验2:创建 Gitee 仓库和提交代码
【实验名称】
实验2:创建 Gitee 仓库和提交代码
【实验目的】
- 掌握创建 Gitee 仓库
- 掌握使用 Git 提交代码。
【实验原理】
略
【实验环境】
- 操作系统: Windows系统。
- Git 客户端 Cmder
- Gitee 注册仓库
【实验资源】
实验代码下载
https://pan.baidu.com/s/1gukX79FA_Lcg2IFFaW_hzA#提取码:eenh
【实验步骤】
- 登录 Gitee.com,点击右上角+号,新建一个仓库。
- 新建一个名为
GitSample
的公开仓库,具体设置如下。
- 注意选择分支类型为
生产/发布模型
。
点击
创建
按钮,完成仓库的创建。复制仓库的 SSH 访问链接。(注意是 SSH 协议,不是 HTTPS)
打开 Cmder,选取一个目录存放仓库的代码,例如
d:\GitTest
。执行以下命令 clone 仓库的代码。
d:
mkdir d:\GitTest
cd d:\GitTest
git clone 替换为你的仓库SSH访问链接
进入
D:\GitTest
目录会看到仓库已经下载成功。把
Git培训代码.zip
解压到 GitSample 目录下。使用
git add
命令把新增的代码加入暂存区。
cd GitSample
git add *
- 查看暂存区的代码状态。可以看到文件处于
new file
状态。
git status
- 使用
git commit
命令把新增的代码提交到本地仓库。
git commit -m "项目初始化提交"
- 查看暂存区的代码状态。可以看到暂存区没有文件提交的状态。
git status
- 使用
git push
命令把本地仓库代码提交到远程仓库(Gitee仓库)。
git push
- 浏览器访问 Gitee 的仓库首页,查看是否已经把代码进行提交。
使用 Notepad++ 打开
index.html
文件。按以下修改网页版本,并保存。浏览器打开
index.html
网页查看版本号是否修改成功。使用刚才学习的
git add
,git commit
和git push
命令来提交这次的修改。可以在 Gitee 仓库首页查看日志,是否提交成功。
实验3:Git 分支和标签管理
【实验名称】
实验3:Git 分支和标签管理
【实验目的】
- 学会如何管理 Git 的分支,而且能够使用适当的分支进行开发,发布和修复 bug。
【实验背景】
在软件的开发行业,有一种常见的版本号分类方法。这种版本号使用数字标记,用点(dot)符号隔开,每次版本更新数字会递增。例如1.3.6。通常1代表大版本号,代表软件的重大改版更新,架构的大更改。3代表小版本号,一般是新增一些小功能或模块。6代表功能修复,就是我们常说的修bug。
这个实验我们打算模拟发布几个版本,版本号定为1.0.0。那么接下来,我们将发布:
- (1)v1.0.0 正式版
- (2)v1.0.1 正式版,包含一个 bug 修复(hotfix)。
- (3)v1.1.0 Build-20191104 新特性开发版,包含一个新特性
【实验步骤】
打开Cmder,使用
git branch
命令来查看本地仓库的分支。*号代表当前使用的分支。使用
git log
命令来查看本地仓库的提交历史,发布版本之前,我们需要确认该版本包含了哪些提交内容。
- Master 是主干分支,通常我们正式版本都应该从主干分支来发布。发布之前在这个版本位置上标记上版本信息,也就是打标签,通过打标签,以后我们知道发布的版本对应着哪一次提交的内容。我们再 master 分支(主干)上打上 v1.0.0 的标签
git tag -a v1.0.0 -m '正式版v1.0.0'
- 我们可以使用以下命令来查看所有的标签。
git tag -l
- 新增的标签提交到远程仓库,在远程仓库查看标签是否已经提交。
git push --follow-tags
- 可以尝试在远程仓库创建发行版,这样别人就可以直接下载该版本的应用,具体同学们自己探索实现。
- 接下来假设我们在正式版
v1.0.0
发现了一个bug,我们需要紧急修复。这时候应该要在master分支上,基于v1.0.0
来修复这个bug,所以我们从标签v1.0.0
这里新增一个分支来修复。
git checkout -b hotfix-v1.0.1 v1.0.0
git branch 命令可以看到我们新增了一个hotfix-v1.0.1
分支,而且当前郑处于这个分支之上。
如果这时候你想切换到其他分支,可以使用 git checkout 分支名称
命令来切换到不同的分支。
- 我们直接修改
index.html
,执行以下命令
修改为
使用add,commit和push命令来提交。
git add index.html
git commit -m "修复一个版本号的bug"
git push
- hotfix-v1.0.1是一个临时的分支,修改完以后,我们需要把这些修改合并回 master 分支。
#切换到 master 分支
git checkout master
#把hotfix-v1.0.1分支的修改合并到当前的 master 分支
git merge --no-ff hotfix-v1.0.1
#加上标签v1.0.1
git tag -a v1.0.1 -m "正式版v1.0.1"
- hotfix-v1.0.1 分支已经合并回 master 分支,为了维护历史方便,通常我们选择删除此分支。
git branch -d hotfix-v1.0.1
- push 到远程仓库查看新的 tag 是否存在。
git push --follow-tags
- 现在需要开始开发一个新特性版本,版本号暂定为 v1.1.0,但是这个版本可能短期内开发不完,项目经理决定采取快速迭代的开发方式,每日都发布一个开发版,在版本号后面加上 Build的日期。例如第一天开发是2020年4月3日,那么版本号就是
v1.1.0 Build-20200403
。为了不影响master 分支的正常维护(master 分支可能还要发布修复bug),我们需要在v1.0.1 标签这里再新建一个develop
分支。
git checkout -b develop v1.0.1
- 我们修改 index.html 内容。并且使用标签标记为
v1.1.0-Build-20200403
。
git add index.html
git commit -m "修改开发版版本号"
git tag -a 'v1.1.0-Build-20200403' -m "每日开发版本标签 20200403"
#这一句是为了设置本地仓库的分支对应远程仓库的分支
git push --set-upstream origin develop
git push --follow-tags
- 小结和思考 从实战5当中,我们的版本分支图如下:
思考:
(1)如果开发版v1.1.0 完成,需要正式发布v1.1.0,需要如何操作发布?
(2)如果要新开发一个v1.2.0 版本,要如何操作?
实验4:使用 IDEA 操作 Git
【实验名称】
实验4:使用 IDEA 操作 Git
【实验目的】
- 学会如何使用 IDEA 来操作 Git 。
【实验背景】
现在主流的集成开发工具都支持Git。IDEA 也集成了 Git 的客户端,这个实验是通过操作来熟悉 IDEA 的 Git 的使用。
【实验步骤】
打开 IDEA,选择
Get From Version Control
,从版本管理工具导入项目。注意输入仓库的地址和修改项目的目录。
由于 IDEA 无法识别我们的代码类型,我们选择从现有代码导入项目。
进入 IDEA 项目主界面,我们把 GitSample.iml 这个项目配置文件提交到远程仓库。
使用右键菜单 Git -> Add
使用右键菜单 Git -> Commit File…
输入提交的消息,进行提交。
IDEA 左下角的
Version Control
选项卡可以查看Git的版本管理信息。
(1)查看本地修改了的文件。
(2)查看 Git 提交的日志。
- 尝试修改
index.html
文件的代码,并提交到 Gitee 仓库。
【常见问题解答FAQ】
问题1:Cmder 提示“Bad owner or permissions on” 提示。
答:这是因为你当前Windows 用户可能不具备.ssh目录的访问权限,导致创建密钥失败。可以尝试以下操作,为.ssh目录重新配置用户访问权限:
- 1.找到.ssh文件夹。它通常位于C\Users,例如C\Users<你的windows用户名>。
- 2.右键单击.ssh文件夹,然后单击“属性”。
- 3.找到并点击“安全”标签。
- 4.然后单击“高级”。单击“禁用继承”,单击“确定”。将出现警告弹出容口。单击“从象中删除所有继承的权限”。
- 5.你会注意到所有用户都将被删除。让我们添加所有者。在同一窗口中,单击“编辑”按钮。
- 6.接下来,单击“添加”以显示“选择用户或组”窗口。
- 7.单击“高级”,然后单击“立即查找”按钮。应显示用户结果列表。选择您的用户帐户。
- 8.然后单击“确定”(大约三次)以关闭所有窗口。
问题2:克隆远程仓库显示“Are you sure you want to continue connecting(yes/no)?”
答:输入 yes,继续连接。
问题3:克隆仓库提示“warning: You appear to have cloned an empty repository.”
答:这是一个警告,但是可以忽略。意思是提醒你克隆了一个空的仓库。
问题4:执行 ssh-keygen 命令提示“could not create directory ‘c:\xxx\ssh’:Invalid argument”
答:这可能是2个原因造成。一是你没有c盘的访问权限,尝试查看问题1的解决办法;二是你的 Windows 用户名可能采用了中文等特殊字符,命令参数不支持中文和特殊字符目录导致创建目录失败。你可以切换到一个英文名称的 Windows 用户再尝试。
问题5:弹出CredentialHelperSelector 提示
答:这是因为部分同学从https协议来操作远程的仓库,这时候 Git 会提示你是否使用加密助手来存储你的用户名和密码。你可以选择manager
,store
,wincred
三者其中之一,点击select进行保存。
问题6:执行命令提示“error: invalid key” 或者 “invalid argument”
答:注意检查命令各个参数之间是不是缺失了空格,导致参数错误。
问题7:提示fatal:Authentication failed for ‘https://gitee.com/xxxx'
答:这是由于使用HTTPS协议管理远程仓库,使用了错误的gitee用户名和密码,请注意输入正确的注册邮箱和密码。
问题8:提示“warning:LF will be replaced by CRLF in xxxx The file will have its original line endings in your working directory”
答:这是 Git 提交到远程仓库自动把提交文件的 Windows 的分行符转换为 Unix/Linux 系统的分行符。这种警告可以忽略。
问题9:提示“Please tell me who you are.”
Please tell me who you are.
Run
git config --global user.email "youlexample.com"
git config --global user.name "Your Name"
答: 这是由于 Git 的 user.email 和 user.name 没有配置,所以远程仓库认证失败。请按照 git config 那两句命令配置 gitee 认证邮箱和你的用户名。