提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Git是一个开源的分布式版本控制系统,可以有效高速的处理从很小到很大的项目版本管理。
1. Git工作机制和托管中心
1.1 工作机制
历史版本→本地库
↑
git commmit
↑
暂时储存→暂存区
↑
git add
↑
写代码 →工作区
1.2 托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
- 局域网
GitLab
- 互联网
GitHub(外国网站)
Gitee 码云(国内网站)
2. Git常用命令
命令名称 |
作用 |
---|---|
git config --global user.name 用户名 |
设置用户签名 |
git config --global user.email 邮箱 |
设置用户签名 |
git config --global core.quotepath false |
设置显示中文文件 |
git init |
初始化本地库 |
git status |
查看本地库状态 |
git add 文件名 |
添加到暂存区 |
git commit -m "日志信息" 文件名 |
提交到本地库 |
git reflog 或 git log(更详细) |
查看历史记录 |
git reset --hard 版本号 |
版本穿梭 |
2.1 设置用户签名
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git --version //查看版本号
git version 2.35.1.windows.2
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global user.name tang //设置用户签名
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global user.email 2834323411@qq.com //设置用户签名
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global core.quotepath false //设置显示中文文件
注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系
- 查看是否设置成功
在C:\Users\admin里面找到 .gitconfig 文件并打开
2.2 初始化本地库
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo
$ git init
初始化之后会自动在当前文件夹下生成一个隐藏文件 .git
2.3 查看本地库状态
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git status
On branch master
nothing to commit, working tree clean
2.4 添加到缓存区
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master|MERGING)
$ git add hello.txt
2.5 提交到本地库
- 通过
git commit -m "日志信息" 文件名
通过其git status也可看出其不同
而且查看日志也可看出版本更新
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master|MERGING)
$ git commit -m "merge"
[master f556a5b] merge
2.6 历史版本
git reflog
查看版本信息
git log
查看版本详细信息
admin@DESKTOP-1SHNHA2 MINGW64 /e/Git (master)
$ git reflog
3f47d64 (HEAD -> master, origin/master, git/master) HEAD@{
0}: commit: git笔记1.1
29410ad HEAD@{
1}: commit: git笔记1.0
f73d1ab HEAD@{
2}: commit: 完善版
df5acc9 HEAD@{
3}: reset: moving to df5acc9
20952cf HEAD@{
4}: reset: moving to 2095
df5acc9 HEAD@{
5}: commit: git笔记1.0
d930448 HEAD@{
6}: commit: 进行了第四次修改
24de0b6 HEAD@{
7}: commit: 第二次修改有误,返回上次版本
435af33 HEAD@{
8}: commit: 进行了第二次修改
20952cf HEAD@{
9}: commit (initial): 进行了一次修改
admin@DESKTOP-1SHNHA2 MINGW64 /e/Git (master)
$ git log
commit 3f47d64f23916a165bc218a4bf47ccbe5540bcf5 (HEAD -> master, origin/master, git/master)
Author: tang <2834323411@qq.com>
Date: Sat Sep 3 13:10:14 2022 +0800
git笔记1.1
commit 29410ad24169242a841511e3299560203b4cccec
Author: tang <2834323411@qq.com>
Date: Sat Sep 3 12:47:05 2022 +0800
git笔记1.0
2.6.1 版本穿梭
git reset --hard 版本号
admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reflog
bf3c4a7 (HEAD -> master) HEAD@{
0}: commit: git笔记1.0
f73d1ab HEAD@{
1}: reset: moving to HEAD^
29410ad HEAD@{
2}: reset: moving to 29410ad
3f47d64 (origin/master, git/master) HEAD@{
3}: commit: 唐辉阳的git笔记
29410ad HEAD@{
4}: commit: git笔记
f73d1ab HEAD@{
5}: commit: 完善版
df5acc9 HEAD@{
6}: reset: moving to df5acc9
20952cf HEAD@{
7}: reset: moving to 2095
df5acc9 HEAD@{
8}: commit: git笔记
d930448 HEAD@{
9}: commit: 进行了第四次修改
24de0b6 HEAD@{
10}: commit: 第二次修改有误,返回上次版本
435af33 HEAD@{
11}: commit: 进行了第二次修改
20952cf HEAD@{
12}: commit (initial): 进行了一次修改
admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reset --hard 3f47
HEAD is now at 3f47d64 唐辉阳的git笔记
admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reset --hard bf3c
HEAD is now at bf3c4a7 git笔记1.0
2.7 Git常用命令速查表
3. Git的分支操作
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行
优点
- 同时并行推进多个功能开发,提高开发效率
- 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可
分支常用命令
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -d 分支名 | 删除分支 |
git branch -v | 查看分支 |
git branch -r | 查看远程库分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
分支合并
代码冲突时,先改文件,再使用命令(不能带文件名)
4. GitHub操作
GitHub网址
- 创建远程仓库
- 输入仓库名
远程仓库命令
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git diff |
查看冲突文件 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
查看、创建别名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote -v //查看别名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote add git-demo https://github.com/Tang17261828134/git_demo.git
//创建别名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote -v
git-demo https://github.com/Tang17261828134/git_demo.git (fetch)
git-demo https://github.com/Tang17261828134/git_demo.git (push)
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote remove git-demo //删除别名
起好别名之后
可以通过别名上传文件
团队内合作
可以通过GitHub内中的设置有个manger access进行邀请账户
之后受邀人通过复制该链接进行同意即可
受邀人克隆clone代码之后编辑在上传可以实现更改代码的模型
跨团队合作
通过代码的fork变成自已的,之后修改之后通过pull request请求发送
如果成功就会变成是你修改的
SSH免密登录
- 进入Git Bash here
- 输入命令:
ssh-keygen -t rsa
- 在C:\Users\admin\.ssh里面找到 id_rsa.pub,将里面的内容全部复制下来
- 登录Gitee网站,点 设置 一> SSH公钥 一> 在添加公钥里面粘贴刚刚复制的内容
注意:用ssh免密登录的话,起别名是后面的链接只能是http,而不能是https
5. IDEA 集成 Git
5.1配置Git忽略文件
先设置一个忽视文件
与项目的实际功能无关,不参与服务器上部署运行
设置一个 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
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
在.gitconfig 文件中引用忽略配置文件
[user]
name = manong
email = yanjiuseng
[core]
excludesfile = C:/目录/git.ignore
5.2 定位Git程序
5.3 初始化本地库
5.4 添加到暂存区
添加成功后的文件为绿色,未添加至缓存区的文件为红色
5.5 提交到本地库
5.6 切换版本
5.6.1 查看版本信息
5.6.2 切换版本
5.7 创建分支
创建分支这里有两种方法
5.8 切换分支
5.9 合并分支
5.10 解决冲突
总结
这次通过学习git让我学到了很多,了解到了很多⾃⼰不知道的知识。Git 是⼀个分布式管理⼯具,通过指纹字符串来时刻保持数据的完整性,关⼼的是⽂件数据整体的变化,并不保存变化前后的差异数据;Git 在本地磁盘保存有关项⽬的历史更新,所有绝⼤多数操作只需要访问本地⽂件资源,并不需要Internet。当然可以使⽤GitHbub将代码托管,进⾏远程开发,⽅便团队⽐较分散的情况(这正体现Git分布式的优势);开发⼈员只需将项⽬clone到本地,进⾏相应的开发然后push上传到 GitHub即可。