聊一聊 Git 常用命令(简单通俗易懂)
- 1. 版本控制
-
- 1. 版本控制分类
- 2. Git 与 SVN 最主要区别
- 2. Git 的历史
- 3. Git 环境配置
-
- 1. 安装 Git
- 2. 启动 Git
- 3. 基本的 Linux 命令学习
- 4. Git 的配置
- 4. Git 基本理论(核心)
-
- 1. 工作区域
- 2. 工作流程
- 5. Git 项目搭建
-
- 1. 创建工作目录与常用指令
- 2. 本地仓库的搭建
- 3. 克隆远程仓库到本地
- 6. Git 文件操作
-
- 1. 文件的四种状态
- 2. 查看文件状态
- 3. 忽略文件
- 7. 使用码云
-
- 1. 注册自己的 gitee 账号,完善自己的信息
- 2. 设置本机绑定 SSH 公钥,实验免密码登录!
- 3. 新建仓库
- 8. IDEA 中集成 Git
-
- 1. 新建项目,绑定 Git
- 2. 修改文件,使用 IDEA 操作 Git
- 9. 说明:GIT 分支
1. 版本控制 版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
简单来说就是用于管理多人协调开发项目的技术。
【GitHub|聊一聊 Git 常用命令(简单通俗易懂)】常见的版本控制器
- Git
- SVN
- CVS
- VSS
- TFS
记录文件每次的更新,可以堆每个版本做一个快照,活石记录补丁文件,适合个人用,如RCS。
文章图片
2. 集中版本控制
所有的版本数据都保存在服务器上,协调开发者从服务器上同步更新或上传自己的修改。
所有的版本都存放在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支上工作。
而且,所有的数据都保存在单一的服务器上,一旦服务器损坏,就会丢失所有的数据。
常用的解决方法,就是经常备份。
代表产品:SVN、CVS、VSS
文章图片
3. 分布式版本控制
所有的版本信息都同步到每个用户,这样就可以在本地查看所有版本历史,可以离线本地提交,只需要在连网时 push 到相应的服务器或其它用户那里即可。由于每个用户保存的都是所有的版本数据,只要有一个用户的设备没有被损坏,就可以恢复所有的数据。
不会因为服务器损坏或者网络的原因,造成不能工作的情况!
文章图片
2. Git 与 SVN 最主要区别 SVN 是集中式版本控制系统。
Git 是分布式版本控制系统。
Git 是目前世界上最先进的分布式版本控制系统。
2. Git 的历史
Git 诞生于一个极富纷争大举创新的年代。3. Git 环境配置 1. 安装 Git Git 官网
Linux 的缔造者花了两周开发了 Git 来取代 BitKeeper 来辅助 Linux 内核开发。
文章图片
选择自己的版本下载
安装:无脑点击下一步即可(都选择默认即可)
2. 启动 Git
文章图片
Git Bash:Unix 与 Linux 风格的命令行,使用最多,推荐最多。
Git CMD:Windows 风格的命令行。
Git GUI:图形界面的 Git,不建议初学者使用,尽量先熟悉常用命令。
3. 基本的 Linux 命令学习
cd
:改变目录cd..
:退回到上一级目录pwd
:显示当前所在的目录路径clear
:清屏ls
:列出当前目录中的所有文件ll
:累出当前目录中的所有文件,列出的内容更为详细touch
:新建一个文件,如touch test.txt
,就会在当前目录下新建一个test.txt
文件rm
:删除一个文件,如rm test,txt
,将test.txt
文件删除mkdir
:新建一个文件夹,如mkdir test
,新建一个test
文件夹rm -r
:删除一个文件夹,如rm -r test
,删除test
文件夹
rm -rf
切勿在 Linux 中尝试!删除电脑中全部文件!mv
:移动文件reset
:重新初始化终端/清屏history
:查看命令历史help
:帮助exit
:退出#
:表示注释
git config -l
文章图片
查看系统 config 配置
git config --system --list
查看当前用户(global)配置
git config --global --list
设置用户名与邮箱(用户标识,必要)
当你安装 Git 后首先要做的事情就是设置你的用户名称和 e-mail 地址。
这是非常重要的,因为每次 Git 提交都会使用该信息。
它被永远的嵌入到了你的提交中:
git config --gobal user,name "名称"
git config --gobal user.email "邮箱"
文章图片
4. Git 基本理论(核心) 1. 工作区域 Git 本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Diretory)。
文章图片
- Workspace:工作区,就是你平时存放项目代码的地方
- Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息
- Repository:仓库区,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中 HEAD 指向最新放入仓库的版本。
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
.git 是一个隐藏文件夹
文章图片
2. 工作流程
- 在工作目录中添加、修改文件
UserMapper.xml
- 将需要进行版本管理的文件放入到暂存区域
git add.
- 将暂存区域的文件提交到 git 仓库
git commit
文章图片
5. Git 项目搭建 1. 创建工作目录与常用指令 工作目录(WorkSpace)一般就是你希望 Git 帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
日常使用只要记住下图 6 个命令:
文章图片
2. 本地仓库的搭建 创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
- 创建全新的仓库,需要用 Git 管理的项目的根目录执行:
git init
文章图片
- 执行后可以看到,仅仅在项目目录多出了一个
.git
目录,关于版本等的所有信息都在这个目录里面。
文章图片
- 另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份到本地!
git clone [url]
- 去 gitee 或者 github 上克隆一个测试!
git clone [url]
- Untracked:未跟踪,此文件在文件夹中,但并没有加入到 git 库,不参与版本控制。通过
git add
将状态改变为Staged - Unmodify:文件已经入库,未修改。如果它被修改,状态就会变为Modified:如果使用
git rm
移除版本库,则会变为Untracked
文件 - Modified:文件已被修改。通过
git add
可以暂存为Staged状态,使用git checkout
则丢弃修改过的版本,返回到Unmodify状态,这个git checkout
从库中取出文件,覆盖当前修改。 - Staged:暂存状态。通过
git commit
将修改同步到库中,这时库中的文件和本地文件又变为一致,文件变为Unmodify状态,执行git reset HEAD filename
取消暂存,文件状态变为Modified
git status [filename]
查看所有文件状态
git status
添加所有文件到暂存区
git add .
提交暂存区中的内容到本地仓库
-m
提交信息git commit -m "消息内容"
3. 忽略文件 有些时候我们不想将一些文件上传,比如数据库,临时文件,设计文件等
在主目录下建立".gitignore"文件,此文件有如下规则:
- 忽略文件中的空行或以井号(#)开始的行将会被忽略。
- 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符。方括号([abc])代表可选字符范围,大括号({string1,sring2,…})代表可选的字符串等
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
*.class
*.log
*.lock# Package Files #
*.jar
*.war
*.ear
target/# idea
.idea/
*.iml/*velocity.log*### STS ###
.apt_generated
.factorypath
.springBeans### IntelliJ IDEA ###
*.iml
*.ipr
*.iws
.idea
.classpath
.project
.settings/
bin/*.log
tem/#rebel
*rebel.xml*
忽略所有
.txt
结尾的文件,这样的话上传就不会被选中!*.txt
但
lib.txt
除外!lib.txt
仅忽略项目根目录下的
TODOO
文件,不包括其它目录temp
/temp
忽略
build/
目录下的所有文件build/
会忽略
doc/notes.txt
但不包括doc/server/arch.txt
7. 使用码云
国外的 GitHub 是有墙的,比较慢,在国内的话, 我们一般使用 gitee,公司中有时候会搭建自己的 gitlab 服务器码云 gitee 官网
1. 注册自己的 gitee 账号,完善自己的信息
文章图片
2. 设置本机绑定 SSH 公钥,实验免密码登录!
免密码登录,很重要,gitee 是远程仓库,我们平时工作是在本地仓库
文章图片
先执行下面的命令
ssh-keygen -o
一直回车就好了
文章图片
然后在本机电脑的 C 盘下找到 .ssh 目录
文章图片
将
id_rsa.pub
中的内容复制到网页的公钥部分,然后添加公钥就可以了文章图片
添加成功后会自动一个公钥,这样就可以将 gitee 与自己的本地仓库绑定了
文章图片
3. 新建仓库
文章图片
创建成功后,就可以根据这个连接将 gitee 上的文件克隆到本地仓库了
文章图片
GitHub 的操作与 gitee 的操作基本相同8. IDEA 中集成 Git 1. 新建项目,绑定 Git 将我们远程仓库的 Git 文件目录全部拷贝到新项目的文件夹下即可!
文章图片
文件的颜色就是选中的状态
文章图片
2. 修改文件,使用 IDEA 操作 Git
- 添加到暂存区
- commit 提交
- push 到远程仓库
也可以使用 IDEA 的命令行,使用方法和 GitBash 的命令方法一样
文章图片
9. 说明:GIT 分支 分支在 Git 中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响,不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!
文章图片
Git 分支中常用指令
- 列出所有的本地分支
git branch
- 列出所有的远程分支
git branch -r
- 新建一个分支,但依旧停留在当前分支
git branch [branch-name]
- 新建一个分支,并切换到该分支
git checkout -b [branch]
- 合并指定分支到当前分支
git merge [branch]
- 删除分支
git branch -d [branch-name]
- 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
多个分支如果并行执行,就会导致我们代码冲突,也就是同时存在多个版本!master 主分支应该是非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的 dev 分支上工作,工作玩后,比如要发布,或者说 dev 分支代码稳定后可以合并到主分支 master 上来。
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!
推荐阅读
- git|实战(git安装-2022.5.4)
- 面试|搭建个人博客
- servlet将文件上传到服务器的示例
- Servlet从服务器下载文件的示例
- Jsp与Servlet|使用安全 jsp 与 servlet 完成用户登录(登录错误时账号密码回填)。登录成功后才能上传图片的图片管理系统。
- Appium 服务器初始化参数
- 函数计算 HTTP 触发器支持异步,解放双手搭建 Web 服务