瑞吉实战2-Git实验
瑞吉实战2–git实验
实验内容
Day01-git实训
- 实验1、git安装使用,完成单人、单机上传、备份实验。
- windows下的git客户端下载、安装
- git环境配置(设置用户信息、邮箱)、hosts设置
- github创建仓库
- 本地目录初始化git仓库、暂存、撤销暂存、提交本地仓库、版本回滚、查看操作日志
- push远程仓库、删除本地仓库、从github上拉回项目
- 实验2、分支操作,查看、创建、切换、推送分支到远程、合并分支(设置master分支仅限管理员)
- 实验3、标签操作,查看、创建、推送、拉取
- 实验4、协同开发,本地两个目录模拟多人用户。
- 实验5、idea操作git
- 配置git客户端、初始化项目、克隆远端项目
- 实验1在idea中的操作
- 实验2在idea中的操作
- 实验3在idea中的操作
- 实验4在idea中的操作
实战所需资料、工具、代码均存放于个人百度网盘中
实验1、git安装使用,完成单人、单机上传、备份实验。
1.1、windows环境安装、配置
1、官网下载安装
工具包:Git - Downloads (git-scm.com),自带shell和gui两种客户端
2、安装过程
一路next即可,可以修改安装目录。
3、git环境配置、hosts设置
安装完成后设置个人信息,用于git log区分用户
# 设置用户信息
git config --global user.name "linzh"
git config --global user.email "linzhihui@hotmail.com"
# 查看配置信息
git config --list
如果有使用tortoiseGit,在图形界面也是不错的设置
4、hosts优化
github推送超时的解决办法,参考资料:GitHub 更新代码出现 Failed to connect to github.com port 443 Timed out 的解决办法 | 前端小记 (sweetheartjq.cn)
修改host文件:路径-C:\WINDOWS\system32\drivers\etc
# host设置,避免push到github的时候出现dns污染,hosts文件所在地 C:\WINDOWS\system32\drivers\etc
### (图1的 IP Address)
140.82.112.4 github.com
### (图2的 IP Address)
199.232.69.194 github.global.ssl.fastly.net
### (图3的 4个 IP Address)
185.199.108.153 assets-cdn.github.com
185.199.109.153 assets-cdn.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.153 assets-cdn.github.com
刷新dns
ipconfig /flushdns
1.2、本地仓库操作
初始化git仓库、提交暂存、移出暂存、从暂存区提交本地仓库、版本回滚及日志查看
操作情况:
1)、初始化本地仓库 创建测试目录,如e:\test\gittest1
,打开文件夹后右键选择git bash here
git status #查看状态,刚开始没有任何操作,提示非git仓库管理
git init #初始化仓库
2)、添加到暂存区
创建文件,查询状态是红字untracked
git init #初始化仓库
git status #查看工作区状态,红字字体是无版本管理或做了修改没有提交暂存,绿色字体是存放暂存区未提交仓库。
新增文件测试,查看状态(无版本管理)
touch test.txt # 创建测试文件
git status # 查看状态,应是红色字体,无版本管理
git add test.txt # 提交暂存区
git status #
git reset
git status
提交到暂存区
git add test.txt # 提交暂存区
git status #
git reset
git status
3)、移出暂存区
git reset # 支持通配符,不输入则暂存区全部移出
git status
4)、从暂存区提交到本地仓
git commit -m "repo init" # 提交说明是必须的。
git log # 查看本地仓库日志,仅记录commit, HEAD指针、ID可用于切换!
5)、多个版本滚动
先进行文件的修改,提交两个版本
echo "hello world!" >test.txt #修改文件
git add test.txt # 提交暂存
git commit -m "modify test" # 提交本地仓
echo "hello china!" >test.txt #修改文件
git add test.txt # 提交暂存
git commit -m "modify test2" # 提交本地仓
git log #查看变化
指针移动,版本滚动
# 最新版
$ cat test.txt
hello china!
# 切换到上一版
$ git reset --hard 2acf755b912cf4f1f1aaf71e7483ece7584b72ca
$ cat test.txt
hello world!
# 切回最新版本
$ git reset --hard b1787a4f89a3ad9b9bd68e27298df3a36fe1c408
$ cat test.txt
hello china!
1.3、远程仓库操作(Github)
1)、创建仓库
github账号创建过程略,新建仓库填入仓库名、选择公共或私有仓库即可,建议暂时不创建readme文件,省的合并!
2)、提交本地的ssh keys到github上
cat ~/.ssh/id_rsa.pub
ssh-keygen -t rsa -C "youremail@example.com" # 如果没有提前设置,用这句生成,一路回车即可
3)、将本地仓库push到远程
这里要注意,github的拉取是采用ssh地址和ssh key做认证,类似码云的账号密码、https路径是使用不了的
git remote add origin git@github.com:4575252/GitBashTest.git
git remote -v
git push origin master
# 注:删除连接
git remote remove xxx
4)、从github上拉取项目
克隆的项目,自动与远端做了连接!
git clone git@github.com:4575252/GitBashTest.git
cd GitBashTest
git remote -v
5)、从github上更新项目
git pull origin master # 一般网络及各项配置ok,没有未提交的代码,一键更新到最新~
实验2、分支操作
分支操作主要有这些常用命令
git branch 查看分支
git branch -r 查看远程分支
git branch -a 查看本地和远程分支
git branch [name] [-d]创建、删除分支
git checkout [name] 切换分支
git push [shortName] [name] 推送至远程仓库分支
git merge [name] 合并分支
# 查看分支、创建、删除分支
git branch
git branch test
git branch test -d
# 切换分支
git branch test1 #创建两个分支
git branch test2
git checkout test1 # 切换分支1并查看
git status
git checkout test2 # 切换分支2并查看
git status
# 分支回档
git log
git reset --hard 2acf755b912cf4f1f1aaf71e7483ece7584b72ca
分支并行开发
# 1、从当前主干创建分支
git branch test1
git branch test2
# 2、切换分支1进行修改、提交
git checkout test1 #
echo "test1" >> test.txt
git add test.txt
git commit -m "test1 branch commit"
# 3、切换master进行查看、合并
git checkout master #
cat test.txt
git merge test1
cat test.txt
# 4、将两个分支都推送到远端
git push origin master test
实验3、标签操作
分支是用于并行开发,而标签是针对具体的commit进行标记,属于只读的动作。
一般标记完,用于检出到某个分支备查,或克隆到本地进行编译部署
标签操作主要有这些常用命令
- git tag 查看标签
- git tag [name] [-d] [-m “xxxx”] 创建、删除标签
- git tag -a name -m “xxxx” 创建指定标签并填写备注
- git push [shortName] [name] 将标签推送至远程仓库
- git checkout -b [branch] [name] 检出标签
创建标签实验
# 查看、创建、删除标签
git tag
git tag 1.0 #在当前分支、当前commit(HEAD)上创建标签
git tag 1.0 -d
# 查看标签详细信息
git show [tag] #可看到所在分支,如果有commit对应多个分支,会一并列出
# 创建标签并设立备注
$ git tag -a 2.0a -m "测试备注"
$ git show 2.0a
tag 2.0a
Tagger: linzh <linzhihui@hotmail.com>
Date: Tue Sep 27 10:19:38 2022 +0800
测试备注
# 根据具体commit进行标签
git log #查看commit历史,会罗列出标记,如果有的话!
git tag 0.9 XXXXXXXX #根据commit的hash值进行达标,一般前7个字符就够了,只要不重复,不然就多复制几个
# 将标签推送到远端
git push origin xxx
操作标签
# 检出标签,用于查看,可修改,但不可提交!
git checkout xxx # 这是分离状态,虽然可以修改、提交暂存
# 检出标签到某个[新]临时分支,可进行开发!
git checkout -b test3 1.0 #这个分支必须是全新的,然后可以继续进行开发!
# 克隆项目依据某个分支
git clone -b <tag> <repository> #克隆后可以切换到master或其他分支进行开发
实验4、多用户协同(依赖远程仓)
1、一人提交,另一人更新,保持同步
仓库1进行修改
cd gittest1
echo "hello 2" >> test.txt
git add test.txt
git commit -m "modify for remote"
git push origin master
仓库2拉取
cd GitBashTest
git pull origin master
cat test.txt
git log
实验5、IDEA中的git操作
1、idea中的操作主要集中四个区域
2、从欢迎页面clone项目
3、从idea中clone项目
评论系统未开启,无法评论!