【Java架构-版本控制】-Git基础

这篇具有很好参考价值的文章主要介绍了【Java架构-版本控制】-Git基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文摘要

Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git



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),把补丁发送给远程库。

【Java架构-版本控制】-Git基础,Java架构,java,架构,git

3. Git常用命令

命令 作用 示例
init 初始化git项目 git init
status 查看git中文件状态 git status
add 将工作空间文件添加至git暂存区 单文件:git add filename
多文件:git add file1 file2
所有文件:git add .
rm --cached 将暂存区文件撤销回工作空间 git rm --cached filename
restore 将暂存区文件撤销回工作空间 git restore --staged filename
commit 将暂存区文件上传至git版本库 git commit -m '提交注释'
log 查看git操作日志 显示所有日志:git log
简单显示日志:git log --pretty=oneline
reset --hard HEAD^ 1. 回退到上一个版本
2. 后边有几个^就表示回退到前边版本
3. 回退指定版本
1. 回退上一版本:git reset --hard HEAD^
2. 回退上上版本:git reset --hard HEAD^^
3. 回退至前10个版本:git reset --hard HEAD~10
reset --hard version 回到至指定版本 git reset --hard 996c
git reflog 回退撤销 git reflog
rm 删除文件,文件从版本库移至暂存区,要完全删除,必须在执行commit git 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.db

6.diff

diff:用于比较工作空间、暂存区、版本库中文件差异性文章来源地址https://www.toymoban.com/news/detail-684195.html

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.txt
+++ b/1.txt

# -1:表示暂存区的行数,2:表示工作空间行数
@@ -1,2 +1,2 @@
 hello world
-
# update workspace:表示工作空间增加了该行数据
+update workspace

6.3.暂存区与版本库

$ git diff --cached 1.txt
diff --git a/1.txt b/1.txt
index 9a71f81..478d5b1 100644
--- a/1.txt
+++ b/1.txt
@@ -1,2 +1,2 @@
 hello world
-
+update workspace

6.4. 工作空间与版本库

# 指定要比较的版本号
$ git diff HEAD 1.txt

diff --git a/1.txt b/1.txt
index 9a71f81..f0bc050 100644
--- a/1.txt
+++ b/1.txt
@@ -1,2 +1,4 @@
 hello world
+update workspace

+xxixixix

6.5. 版本库与版本库

# 指定要比较的两个版本号
$ git diff HEAD HEAD^
diff --git a/1.txt b/1.txt
index 478d5b1..9a71f81 100644
--- a/1.txt
+++ b/1.txt
@@ -1,2 +1,2 @@
 hello world
-update workspace
+

到了这里,关于【Java架构-版本控制】-Git基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超详细Git版本控制及Git的使用

    目录 1.Git文件的三种状态与工作模式 1.1文件的三种状态 1.2Git项目的三个工作区域 1.3基本git工作流程 2.Git的使用 2.1Git使用SSH链接下载源码 2.2创建版本库并提交文件 2.2.1编写一个文本文件并将其提交到git仓库 2.2.2将项目提交到本地仓库 2.2.3提交文件到本地版本库 2.3文件的修改

    2024年01月20日
    浏览(44)
  • Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(68)
  • 版本控制(Git)

    Fork 本课程网站的仓库 将版本历史可视化并进行探索 是谁最后修改了  README.md 文件?(提示:使用  git log  命令并添加合适的参数) 最后一次修改 _config.yml  文件中  collections:  行时的提交信息是什么?(提示:使用  git blame  和  git show)     使用 Git 时的一个常见错误

    2024年02月20日
    浏览(37)
  • git的版本控制流程

    例如我们常用的淘宝,每次升级,版本号就会加一。那么我们怎么控制版本号呢? --使用git。 不建议 使用【Git Bash】中去输入指令,使用idea 中以及集成好的三个按钮更加快捷方便。 从左到右依次是【git pull】拉项目、【commit】暂提交到本地、【git push】提交到远程。 注意

    2024年02月04日
    浏览(42)
  • Git版本控制——分支

    几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着可以把工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。 创建并切换一个分支: 不能删除当前分支,只能删除其他分支 当两个分支上对文件的修改可能会存在冲突,例如同时

    2024年01月17日
    浏览(43)
  • Git版本控制

    1. Git 是一个免费开源的分布式版本控制系统 2. Git 易于学习,占地面积小,性能极快,具有廉价的本地库,方便的暂存区域和多个工作流分支等特性 3. Git 性能优于 Subversion(SVN) , CVS 等版本控制工具 1.版本控制是一种记录工作内容变化,以便将来查阅特定版本修订情况的系统

    2024年02月05日
    浏览(41)
  • 【Git】 - 版本控制

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 版本 : 软件版本;(例如:JDK 1.8、MySQL 8.0、IDEA 2022) 文件版本;(作用:保存重要的历史记录、恢复数据

    2024年04月23日
    浏览(30)
  • 本地版本控制工具Git

    明确设计思路,精准定位问题,对于我们后期理解迭代工程有很大的帮助。 这就是我们常说的 40%设计,20%编写和剩下的40%时间进行调试优化 。 今天为大家带来的是 通过Git工具存储和对比具有阶段性成果的代码版本 。 Q1:代码调通了,但是不知道是哪部分导致问题的存在?

    2024年04月28日
    浏览(44)
  • Git:版本控制工具

    Git是分布式版本控制系统,同时是内容管理系统、工作管理系统等,与Linux命令完全兼容。 与集中式版本控制系统(比如SVN)不同,Git是分布式的,可以通过Git从服务器上把完整的Git仓库克隆到本地。 协同修改 数据备份 版本管理 权限控制 历史记录 将工作区的修改添加(

    2024年01月19日
    浏览(44)
  • 版本控制-Git/SVN

    1. Git 是一个免费开源的分布式版本控制系统 2. Git 易于学习,占地面积小,性能极快,具有廉价的本地库,方便的暂存区域和多个工作流分支等特性 3. Git 性能优于 Subversion(SVN) , CVS 等版本控制工具 1.版本控制是一种记录工作内容变化,以便将来查阅特定版本修订情况的系统

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包