课程目标:五小时熟练掌握Git GitHub GitLab Gitee码云的使用
1.Git
- Git介绍分布式版本控制工具vS集中式版本控制工具
- Git安装基于官网发布的最新版本2.31.1安装讲解
- Git命令基于开发案例详细讲解了git的常用命令
- Git 分支 分支特性 分支创建 分支转换 分支合并 代码合并 冲突解决 Idea集成Git
2.GitHub
- 创建远程库
- 代码推送 Push
- 代码拉取Pull
- 代码克隆clone
- SSH免密登录
- Idea集成GitHub
3. Gitee码云
- 码云创建远程库
- Idea集成Gitee码云
- 码云连接GitHub进行代码的复制和迁移
4.GitLab
- GitLab服务器的搭建和部署
- Idea集成GitLab
目录
- Git常用命令
- Git分支操作
- Git团队协作机制
- GitHub操作
- IDEA集成Git
- IDEA集成GitHub
1.Git常用命令
命令名称 作用
git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m "日志信息” 文件名 提交到本地库
git reflog 查看历史记录git log 查看历史记录(详细)
git reset --hard 版本号 版本穿梭
这里的--global表示全局配置,后续的所有文件操作都会使用该用户名称及邮箱。此时在操作系统的用户目录,会产生新的配置文件
配置文件地址:
配置文件内容:
初始化本地库
git init
版本库创建成功后,会在目录中创建.git目录,用于管理当前版本库。
查看版本库状态
git status
查看空仓库:
查看有文件的仓库:
添加到暂存区:
git add
将aaa.txt添加到暂存区,查看版本库状态
git rm --cached
是一个 git 命令,它的作用是从 Git 的索引中移除指定的文件,但不删除工作区中的实际文件。 也就是说,这个命令可以用来停止 Git 跟踪某个文件或目录,并把该文件(或目录)恢复到未被跟踪的状态。如果我们使用 git rm --cached file.txt
命令,则 Git 不再跟踪 file.txt
文件的改动,但文件本身并不会被删除。
git rm --cached 文件
提交本地库
git commit -m "版本信息" 提交到本地库
git log 查看历史记录(详细)
git reflog 查看历史记录
修改文件
创建并且编辑bbb.txt,将bbb.txt添加到暂存区,再把bbb.txt提交到本地库,查看提交版本的历史记录:
修改bbb.txt,查看bbb.txt,查看本地库状态,modified是修改的意思,再把bbb.txt添加到暂存区,再把bbb.txt提交到本地库,在查看本地库的历史提交记录
看一下第二个版本的bbb.txt
版本穿梭
git reset --hard 版本号 版本穿梭
版本一:创建并且编辑ccc.txt,查看ccc.txt,把ccc.txt添加到暂存区,在把ccc.txt提交到本地库,查看历史版本。
版本二: 编辑ccc.txt,查看ccc.tx,把ccc.txt添加到暂存区,在把ccc.txt提交到本地库,查看历史版本。
版本三:编辑ccc.txt,查看ccc.tx,把ccc.txt添加到暂存区,在把ccc.txt提交到本地库,查看历史版本。
现在是版本三,看一下版本三的内容:
版本回退到版本二,看一下版本二的内容:
版本回退到版本一,看一下版本一的内容:
2.Git分支操作
分支的操作
命令名称 作用
git branch 分支名 创建分支
git branch 查看分支
git checkout 分支名 切换分支git switch 分支名 切换分支(一般多用这个命令)
git merge 分支名 把指定的分支合并到当前分支上
查看分支
git branch
创建分支
git branch 分支名
创建dev分支,创建hotfix分支,查看分支
切换分支
git switch 分支名
有master分支切换到 dev分支,在有dev分支切换到hotfix分支
合并分支
git merge 分支名 把指定的分支合并到当前分支上
正常合并
在dev分支上创建,并且编辑ggg.txt ,查看ggg.txt,把ggg.txt添加到暂存区,把ggg.txt提交到本地库.
(注意:现在只有dev分支能够看到ggg.txt,在其他分支看不到ggg.txt)
切换到master分支,合并dev分支,就能看到ggg.txt了
冲突合并
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
在master分支上编辑aaa.txt,查看aaa.txt,把aaa.txt添加到暂存区,在把aaa.txt提交到本地库
切换到dev分支,查看aaa.txt,编辑aaa.txt,查看aaa.txt
把aaa.txt添加到暂存区,把aaa.txt提交到本地库,切换分支到master分支
master分支合并dev分支
发生冲突,手动合并冲突
先查看aaa.txt,在编辑aaa.txt,在查看aaa.txt,在把aaa.txt添加到暂存区,再把aaa.txt添加到本地库,查看aaa.txt,手动解决冲突成功!
3.Git团队协作机制
团队内协作:
跨团队协作:
4.GitHub操作
远程仓库操作
命令名称 作用
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
创建远程库,把本地库推送到远程仓库
Git仓库创建好后,点击https地址进行复制
为Git远程仓库创建别名
创建并且编辑bbb.txt,把bbb.txt添加到暂存库,把bbb.txt提交到本地库,查看远程仓库别名,在把bbb.txt推送到远程库
在push的时候会弹出github登录框,登录绑定一下
成功推送后,在github上能够看到推送的文件:
拉取远程库到本地库
1.在远程库上修改bbb.txt:如下:
2.现在本地库已经和远程库不同步了,现在需要拉取远程仓库的代码到本地,查看bbb.txt
克隆远程仓库到本地
1.找到想要克隆的仓库(复制一下https链接地址)
2.创建空文件夹,直接clone ,git版本库也给clone下来了,你可以看看历史版本(公共库读权限没有限制)
小结:clone会做如下操作,1.拉取代码,2.初始化本地仓库,3.创建别名,4.远程仓库别名也给clone下来了。
邀请加入团队(团队内协作),跨团队协作
这里看哔哩哔哩视屏吧,没有那么多github账号视频地址
Github_SSH_免密登录
1.生成公钥和私钥(连续敲三下回车)
ssh-keygen -t rsa -C 邮箱
2.生成好的公钥和私钥放在这里:
查看公钥,复制公钥
接下来使用ssh协议,进行克隆仓库
在一个空的文件夹下运行这个命令:
克隆成功了, 如下:
现在创建编辑ccc.txt,把ccc.txt添加到暂存区,再把ccc.txt提交到本地库,给远程仓库创建别名,最后推送到远程仓库:
git push -u origin master 啥意思,有啥作用?
git push -u origin master
是将本地的 master
分支推送到远程仓库的 origin
,并通过 -u
参数设置了本地 master
分支与远程仓库 origin/master
分支关联。这样一来,在以后你在 master
分支上运行 git push
命令时,Git 会默认将更改推送到 origin/master
分支。此外,如果你在 master
分支上运行 git pull
命令,Git 会自动从 origin/master
分支获取更改并将它们合并到你的本地 master
分支中。这可以节省你的时间,并使你的工作流更加高效。
现在我在远程仓库直接修改代码ccc.txt
现在远程仓库和本地仓库已经不同步了,需要在本地仓库拉取远程仓库master分支的代码:(查看ccc.txt)
5.IDEA集成Git
配置git忽略文件
1.为什么要忽略他们?
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差
异。
2.怎么忽略?
创建忽略规则文件xxxx.ignore(前缀名随便起,建议是git.ignore) 这个文件的存放位置原则上
在哪里都可以,为了便于让~.gitconfig文件引用,建议也放在用户家目录下
git.ignore
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
1.现在新建一个项目,使用idea集成Git,学会在idea中使用git.
2.配置git
3.初始化本地库,相当于敲命令git init
4.编写代码,添加到暂存区
5.把刚才添加到暂存区的代码提交到本地库:
6.修改代码,进行第二次添加到暂存区,提交到本地库。之后在进行版本穿梭。
修改代码
添加到暂存区
提交到本地库
版本穿梭:
7.创建分支dev,切换分支到dev,在切换分支到master
8.合并分支(正常合并)之前遇到点错误,删除了git仓库重新弄了一下
切换到dev分支,修改代码,添加到暂存区,提交到本地库
切换到master分支 ,合并dev分支
9.合并分支(冲突合并)
切换到dev分支,修改代码
切换到master分支,修改代码
合并分支dev
手动解决冲突