logo头像

分享技术,品味人生

瑞吉实战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,在图形界面也是不错的设置

image-20220926172832018

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	#初始化仓库

image-20220926172020344

2)、添加到暂存区

创建文件,查询状态是红字untracked

git init #初始化仓库
git status #查看工作区状态,红字字体是无版本管理或做了修改没有提交暂存,绿色字体是存放暂存区未提交仓库。

image-20220926180131337

新增文件测试,查看状态(无版本管理)

touch test.txt	# 创建测试文件
git status		# 查看状态,应是红色字体,无版本管理
git add test.txt	# 提交暂存区
git status	#
git reset
git status

image-20220926180148849

提交到暂存区

git add test.txt	# 提交暂存区
git status	#
git reset
git status

image-20220926180605080

3)、移出暂存区

git reset	# 支持通配符,不输入则暂存区全部移出
git status

image-20220926180727670

4)、从暂存区提交到本地仓

git commit -m "repo init" # 提交说明是必须的。
git log	# 查看本地仓库日志,仅记录commit, HEAD指针、ID可用于切换!

image-20220926180951607

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 #查看变化

image-20220926181756014

指针移动,版本滚动

# 最新版
$ 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文件,省的合并!

image-20220926172451606

2)、提交本地的ssh keys到github上

cat ~/.ssh/id_rsa.pub
ssh-keygen -t rsa -C "youremail@example.com"  # 如果没有提前设置,用这句生成,一路回车即可

image-20220926184527365

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

image-20220926185021507

4)、从github上拉取项目

克隆的项目,自动与远端做了连接!

git clone git@github.com:4575252/GitBashTest.git
cd GitBashTest
git remote -v

image-20220926185429844

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中的操作主要集中四个区域

image-20220927110102219

2、从欢迎页面clone项目

image-20220927105751488

3、从idea中clone项目

image-20220927110203751

评论系统未开启,无法评论!