【JAVA】Git 的基本概念和使用方式

Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目版本管理。以下是Git的一些基本概念和使用方式的深入探讨:

基本概念

1. 仓库(Repository)
  • 仓库是Git用来保存你的项目文件和版本历史的地点。
2. 工作区(Working Directory)
  • 工作区是仓库中检查出来的当前版本的一个拷贝,你可以在这个目录下修改文件。
3. 暂存区(Staging Area)
  • 暂存区是一个准备下一次提交的改动的文件列表,通常是一个保存在Git仓库目录中的简单数据库。
4. 提交(Commit)
  • 提交是你将暂存区的改动写入项目历史中的操作。
5. 分支(Branch)
  • 分支是Git中一个非常强大的功能,它允许你从开发主线上分出一个并行的线路,你可以在这个分支上进行开发,而不会影响主线上的代码。
6. 合并(Merge)
  • 合并是将一个分支的改动历史整合到另一个分支上。
7. 回滚(Revert)
  • 回滚是撤销某次提交所做的改动。
8. 远程仓库(Remote Repository)
  • 远程仓库是托管在网络服务器上的仓库,可以多人协作开发。

使用方式

初始化仓库
bash 复制代码
git init
添加文件到暂存区
bash 复制代码
git add <file>
提交改动到仓库
bash 复制代码
git commit -m "commit message"
查看当前分支
bash 复制代码
git branch
创建并切换到新分支
bash 复制代码
git checkout -b <branch-name>
切换到已有分支
bash 复制代码
git checkout <branch-name>
合并分支
bash 复制代码
git merge <branch-name>
查看当前状态
bash 复制代码
git status
查看提交历史
bash 复制代码
git log
回滚到某次提交
bash 复制代码
git revert <commit-hash>
克隆远程仓库
bash 复制代码
git clone <repository-url>
添加远程仓库
bash 复制代码
git remote add <remote-name> <repository-url>
推送到远程仓库
bash 复制代码
git push <remote-name> <branch-name>
从远程仓库拉取
bash 复制代码
git pull <remote-name> <branch-name>
解决冲突

当Git无法自动合并改动时,你需要手动解决冲突。Git会标记出有冲突的文件,你编辑这些文件,解决冲突后,使用git add将它们标记为解决冲突,然后进行git commit

高级使用

1. 分支策略
  • GitFlow:一种严格的分支管理策略,适用于大型复杂项目。
  • GitHub Flow:适用于更频繁发布和较小特性开发的项目。
2. 交互式暂存
  • 使用git add -igit add --interactive进行交互式暂存。
3. 变基(Rebase)
  • 使用git rebase将当前分支上的改动应用到另一分支上,使得项目历史更加线性。
4. 标签(Tag)
  • 使用git tag来标记重要的提交,如版本发布点。
5. 子模块(Submodule)
  • 使用子模块可以包含其他Git仓库作为项目的一部分。
6. 钩子(Hooks)
  • Git提供了多种钩子,可以在特定的Git操作发生时自动执行脚本。
7. 配置别名
  • 使用git config配置别名,简化常用命令。
相关推荐
云梦谭11 分钟前
Git 配置 GPG 提交签名
git·gpg
李艺为3 小时前
Ubuntu下展锐刷机工具spd_dump使用说明
android·linux·git·ubuntu
掘根9 小时前
Git分支管理
git
极小狐9 小时前
极狐GitLab 项目 API 的速率限制如何设置?
大数据·运维·git·elasticsearch·gitlab
残月只会敲键盘10 小时前
Git 命令速查手册
大数据·git·elasticsearch
掘金沸点顶流11 小时前
同一台电脑配置多个 git 账户(github, gitee, gitlab等)
git
苦逼IT运维15 小时前
Git LFS 学习笔记:原理、配置、实践与心路历程
笔记·git·学习
jstart千语16 小时前
【版本控制】idea中使用git
java·ide·git·intellij-idea·intellij idea
王鑫的博客88617 小时前
git常用修改命令
linux·git
苍煜20 小时前
IDEA在Git提交时添加.ignore忽略文件,解决为什么Git中有时候使用.gitignore也无法忽略一些文件
git·elasticsearch·intellij-idea