GitHub|聊一聊 Git 常用命令(简单通俗易懂)


聊一聊 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
1. 版本控制分类 1. 本地版本控制
记录文件每次的更新,可以堆每个版本做一个快照,活石记录补丁文件,适合个人用,如RCS。
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

2. 集中版本控制
所有的版本数据都保存在服务器上,协调开发者从服务器上同步更新或上传自己的修改。
所有的版本都存放在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支上工作。
而且,所有的数据都保存在单一的服务器上,一旦服务器损坏,就会丢失所有的数据。
常用的解决方法,就是经常备份。
代表产品:SVN、CVS、VSS
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

3. 分布式版本控制
所有的版本信息都同步到每个用户,这样就可以在本地查看所有版本历史,可以离线本地提交,只需要在连网时 push 到相应的服务器或其它用户那里即可。由于每个用户保存的都是所有的版本数据,只要有一个用户的设备没有被损坏,就可以恢复所有的数据。
不会因为服务器损坏或者网络的原因,造成不能工作的情况!
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

2. Git 与 SVN 最主要区别 SVN 是集中式版本控制系统。
Git 是分布式版本控制系统。
Git 是目前世界上最先进的分布式版本控制系统。
2. Git 的历史
Git 诞生于一个极富纷争大举创新的年代。
Linux 的缔造者花了两周开发了 Git 来取代 BitKeeper 来辅助 Linux 内核开发。
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

3. Git 环境配置 1. 安装 Git Git 官网
选择自己的版本下载

安装:无脑点击下一步即可(都选择默认即可)
2. 启动 Git GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

Git Bash:Unix 与 Linux 风格的命令行,使用最多,推荐最多。
Git CMD:Windows 风格的命令行。
Git GUI:图形界面的 Git,不建议初学者使用,尽量先熟悉常用命令。
3. 基本的 Linux 命令学习
  1. cd:改变目录
  2. cd..:退回到上一级目录
  3. pwd:显示当前所在的目录路径
  4. clear:清屏
  5. ls:列出当前目录中的所有文件
  6. ll:累出当前目录中的所有文件,列出的内容更为详细
  7. touch:新建一个文件,如 touch test.txt,就会在当前目录下新建一个 test.txt 文件
  8. rm:删除一个文件,如 rm test,txt,将 test.txt 文件删除
  9. mkdir:新建一个文件夹,如 mkdir test,新建一个 test 文件夹
  10. rm -r :删除一个文件夹,如 rm -r test,删除 test 文件夹
    rm -rf 切勿在 Linux 中尝试!删除电脑中全部文件!
  11. mv:移动文件
  12. reset:重新初始化终端/清屏
  13. history:查看命令历史
  14. help:帮助
  15. exit:退出
  16. #:表示注释
4. Git 的配置 查看配置 git config -l
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

查看系统 config 配置
git config --system --list
查看当前用户(global)配置
git config --global --list
设置用户名与邮箱(用户标识,必要)
当你安装 Git 后首先要做的事情就是设置你的用户名称和 e-mail 地址。
这是非常重要的,因为每次 Git 提交都会使用该信息。
它被永远的嵌入到了你的提交中:
git config --gobal user,name "名称"
git config --gobal user.email "邮箱"
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

4. Git 基本理论(核心) 1. 工作区域 Git 本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Diretory)。
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息
  • Repository:仓库区,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中 HEAD 指向最新放入仓库的版本。
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
.git 是一个隐藏文件夹
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

2. 工作流程
  1. 在工作目录中添加、修改文件 UserMapper.xml
  2. 将需要进行版本管理的文件放入到暂存区域 git add.
  3. 将暂存区域的文件提交到 git 仓库 git commit
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

5. Git 项目搭建 1. 创建工作目录与常用指令 工作目录(WorkSpace)一般就是你希望 Git 帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
日常使用只要记住下图 6 个命令:
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

2. 本地仓库的搭建 创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
  1. 创建全新的仓库,需要用 Git 管理的项目的根目录执行:
    git init
    GitHub|聊一聊 Git 常用命令(简单通俗易懂)
    文章图片

  2. 执行后可以看到,仅仅在项目目录多出了一个 .git 目录,关于版本等的所有信息都在这个目录里面。
    GitHub|聊一聊 Git 常用命令(简单通俗易懂)
    文章图片

3. 克隆远程仓库到本地
  1. 另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份到本地!
    git clone [url]
  2. 去 gitee 或者 github 上克隆一个测试!
    git clone [url]
6. Git 文件操作 1. 文件的四种状态
  • 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
2. 查看文件状态 查看指定文件状态
git status [filename]
查看所有文件状态
git status
添加所有文件到暂存区
git add .
提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m "消息内容"
3. 忽略文件 有些时候我们不想将一些文件上传,比如数据库,临时文件,设计文件等
在主目录下建立".gitignore"文件,此文件有如下规则:
  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符。方括号([abc])代表可选字符范围,大括号({string1,sring2,…})代表可选的字符串等
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
*.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 账号,完善自己的信息 GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

2. 设置本机绑定 SSH 公钥,实验免密码登录!
免密码登录,很重要,gitee 是远程仓库,我们平时工作是在本地仓库
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

先执行下面的命令
ssh-keygen -o
一直回车就好了
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

然后在本机电脑的 C 盘下找到 .ssh 目录
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

id_rsa.pub中的内容复制到网页的公钥部分,然后添加公钥就可以了
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

添加成功后会自动一个公钥,这样就可以将 gitee 与自己的本地仓库绑定了
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

3. 新建仓库 GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

创建成功后,就可以根据这个连接将 gitee 上的文件克隆到本地仓库了
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

GitHub 的操作与 gitee 的操作基本相同
8. IDEA 中集成 Git 1. 新建项目,绑定 Git 将我们远程仓库的 Git 文件目录全部拷贝到新项目的文件夹下即可!
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

文件的颜色就是选中的状态
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

2. 修改文件,使用 IDEA 操作 Git
  1. 添加到暂存区
  2. commit 提交
  3. push 到远程仓库
可以直接使用 IDEA 集成的 Git 工具(右上角)
也可以使用 IDEA 的命令行,使用方法和 GitBash 的命令方法一样
GitHub|聊一聊 Git 常用命令(简单通俗易懂)
文章图片

9. 说明:GIT 分支 分支在 Git 中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响,不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!
GitHub|聊一聊 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 上来。

    推荐阅读