邢台网站建设多少钱,wordpress 赞,长沙网站建设公司哪家好,在线给图片加水印本文摘要 Git作为版本控制工具#xff0c;使用非常广泛#xff0c;在此咱们由浅入深#xff0c;分三篇文章#xff08;Git基础、Git进阶、Gitlab搭那家#xff09;来深入学习Git 文章目录 本文摘要1.Git仓库基本概念1.1 远程仓库(Remote)1.2 本地库(Repository) 2. Git仓库…本文摘要 Git作为版本控制工具使用非常广泛在此咱们由浅入深分三篇文章Git基础、Git进阶、Gitlab搭那家来深入学习Git 文章目录 本文摘要1.Git仓库基本概念1.1 远程仓库(Remote)1.2 本地库(Repository) 2. Git仓库工作流程3. Git常用命令4. Git配置文件4.1. 查看配置文件4.2. 新增配置文件4.3. 删除配置文件 5. .gitignore文件5.1. 文件加载进暂存区5.2. glob模式5.3. 匹配示例5.4. 定义全局忽略文件5.5. 通用忽略文件 6.diff6.1. 命令6.2. 工作空间与暂存区6.3.暂存区与版本库6.4. 工作空间与版本库6.5. 版本库与版本库 1.Git仓库基本概念
1.1 远程仓库(Remote) 即资源库是远程服务器机器上的代码库用于做不同版本库文件保存、更新。如Gitlab、GitHub、Gitee 1.2 本地库(Repository) 即用户在本地创建的目录拥有远程库的一个快照由工作区版本库构成 工作区 项目根目录中除.git目录以外的内容存储内容的实际文件暂存区 也叫做缓存区暂存信息存放在.git目录下的index文件中即.git/index中用于临时保存修改的内容版本库(.git目录) 本地库的根目录中的一个隐藏目录.git用于记录版本信息git进行版本控制所需要的文件都放在.git文件夹中
2. Git仓库工作流程
克隆远程库从远程库上克隆完整的Git仓库包括代码和版本信息到本地在本地库上修改代码在本地库上根据不同的开发目的创建分支修改代码提交到分支在本地分支上提交代码把修改合并到本地主分支在本地库上提交更新也就是说把修改合并到本地主分支把远程库合并到本地主分支把远程库上的最新代码fetch下来跟本地主分支合并如果存在冲突那么解决冲突。把本地主分支提交到远程库生成补丁patch把补丁发送给远程库。 3. Git常用命令
命令作用示例init初始化git项目git initstatus查看git中文件状态git statusadd将工作空间文件添加至git暂存区单文件git add filename多文件git add file1 file2所有文件:git add .rm --cached将暂存区文件撤销回工作空间git rm --cached filenamerestore将暂存区文件撤销回工作空间git restore --staged filenamecommit将暂存区文件上传至git版本库git commit -m 提交注释log查看git操作日志显示所有日志git log简单显示日志git log --prettyonelinereset --hard HEAD^1. 回退到上一个版本2. 后边有几个^就表示回退到前边版本3. 回退指定版本1. 回退上一版本git reset --hard HEAD^2. 回退上上版本git reset --hard HEAD^^3. 回退至前10个版本git reset --hard HEAD~10reset --hard version回到至指定版本git reset --hard 996cgit reflog回退撤销git reflogrm删除文件文件从版本库移至暂存区要完全删除必须在执行commitgit rm filename
4. Git配置文件 Git 配置主要分为三类优先级仓库级(local)用户级(global)系统级(system)对应的文件分别为:仓库级(.git/config)、用户级(~/.gitconfig)、系统级(/etc/gitconfig) 4.1. 查看配置文件
查看仓库级git config --local -l查看用户级git config --global - l查看系统级git config --system -l
4.2. 新增配置文件
仓库级git config --local user.name ‘zhangsan’用户级git config --global user.name ‘lisi’系统级git config --system user.name ‘wangwu’
4.3. 删除配置文件
git config --global --unset user.name
5. .gitignore文件
5.1. 文件加载进暂存区
提交所有变化git add -A只提交修改、删除不包括新建git add -u只提交新建、修改不包括删除git add .
5.2. glob模式
“*”匹配零个或多个任意字符[]匹配方括号中的字符如[ab]匹配a或b?匹配任意一个字符[n-m]匹配所有这个字符范围内的字符
5.3. 匹配示例
logs/忽略logs目录/logs.txt忽略logs.txt文件*.class忽略class结尾的文件!/classes/.class不忽略classes目录下的class结尾文件tmp/*.txt只忽略tmp目录下的txt结尾文件**/foo可以忽略/foo,a/foo,a/b/foo等
5.4. 定义全局忽略文件
git config --global core.excludesfile ~/.gitignore
5.5. 通用忽略文件
#java
*.class#package file
*.war
*.ear
*.zip
*.tar.gz
*.rar
#maven ignore
target/
build/#eclipse ignore
.settings/
.project
.classpatch#Intellij idea
.idea/
/idea/
*.ipr
*.iml
*.iws# temp file
*.log
*.cache
*.diff
*.patch
*.tmp# system ignore
.DS_Store
Thumbs.db6.diff diff用于比较工作空间、暂存区、版本库中文件差异性 6.1. 命令
git diff readme.txt
6.2. 工作空间与暂存区
$ git diff 1.txt# a/1.txt表示暂存区文件b/1.txt表示工作空间文件
diff --git a/1.txt b/1.txt# 表示暂存区的版本
index 9a71f81..478d5b1 100644
--- a/1.txtb/1.txt# -1表示暂存区的行数2表示工作空间行数-1,2 1,2 hello world
-
# update workspace表示工作空间增加了该行数据
update workspace6.3.暂存区与版本库
$ git diff --cached 1.txt
diff --git a/1.txt b/1.txt
index 9a71f81..478d5b1 100644
--- a/1.txtb/1.txt-1,2 1,2 hello world
-
update workspace6.4. 工作空间与版本库
# 指定要比较的版本号
$ git diff HEAD 1.txtdiff --git a/1.txt b/1.txt
index 9a71f81..f0bc050 100644
--- a/1.txtb/1.txt-1,2 1,4 hello world
update workspacexxixixix6.5. 版本库与版本库
# 指定要比较的两个版本号
$ git diff HEAD HEAD^
diff --git a/1.txt b/1.txt
index 478d5b1..9a71f81 100644
--- a/1.txtb/1.txt-1,2 1,2 hello world
-update workspace