Git 基础
- Git 基本概念
- 集中式版本控制工具 与 分布式版本控制工具
- Git 下载与安装
- Bash 初始设置
- 创建本地仓库
- Git 三区概念
- 一个简单的提交流程
- 更改文件后再次提交
- git 实现版本切换
- 查看提交日志
- 设置 git 快捷键
- 版本切换(一)
- 版本切换(二)
- 同文件夹下只想让部分文件 git 管理
千里之行,始于足下
Git 学习目标:
- git 基本概念
- git 工作流程
- git 常用命令
- git 代码托管
- idea 操作 git
Git 基本概念
git 的实际使用场景,为什么用 git?
- 防止电脑嘎嘣脆,啥啥都没了;
- 代码版本控制,突然发现错了好几个版本,咱还能恢复到之前的之前的之前的版本;代码回滚与还原;
- 协同开发,多个人同时维护同一个项目;
- 代码追溯,通过线上日志找到什么时候出的错
集中式版本控制工具 与 分布式版本控制工具
集中式版本控制工具:
版本库是存放在中央服务器,每个人工作时候必须联网,从中央服务器下载代码,修改后上传到中央服务器,提交到中央版本库。比如 SVN,CVS,但是已经比较过时;
分布式版本控制工具:
每个人的电脑都是一个完整的版本库,工作时候无需联网,多人协作只需要各自的修改推给对方,就可以看到对方的修改了。比如 Git;
虽然 git 也有共享版本库,但是 git 由于每个人的电脑都包含完整的版本库,所以不怕中央挂掉,挂了从任何一个电脑上上传即可。
Git 下载与安装
下载网址:https://git-scm.com/download/win
安装注意事项:(没有提到直接默认 next 即可)
选择英文地址:
给桌面加个图标:
默认 vim, 有关 vim 操作博文:https://blog.csdn.net/weixin_43098506/article/details/129336983
主干名,默认其为 master
默认选择第二个,第一个是只从 git bash 进入 git,第二个是可以从 bash 以及 第三方软件进入;
默认选择 ssh可执行文件,默认选择 https 传输后端,配置行尾转换,配置终端模拟器,全部默认;
恭喜安装完成!!!
推荐安装介绍博客:
https://www.cnblogs.com/kevinzhushrek/p/16092144.html
Bash 初始设置
Git GUI:Git 提供的图形界面工具;
Git Bash:Git提供的命令行工具;
安装完成后最重要一步是设置邮箱以及用户名;
打开 git bash,设置自己用户名以及邮箱
git config --global user.name "XU Hongduo"
git config --global user.email "xxxxxxx@hotmail.com"
检查自己设置好的用户名以及邮箱
git config --global user.name
git config --global user.email
创建本地仓库
自定义一个文件夹下,右键新建文件夹,命名英文,然后右键 Git Bash here,执行指令:
git init
Git 三区概念
在 Git 中,有三区概念,工作区,暂存区以及仓库。
工作区: 新创建未加到仓库中的文件;已加到仓库但是修改了没提交的文件;
暂存区: 提交到仓库之前的缓存区,工作区的文件通过 add 指令;
仓库: 进行版本控制的文件目录;
一个简单的提交流程
首先从工作区提交到暂存区
git add "test.txt"
可以查看状态
git status
然后从暂存区提交到仓库
git commit -m "first submit"
# first submit 为注释内容
再次查看状态
git status
更改文件后再次提交
对上述已提交的 test.txt 文件做更改,执行 status 查看状态
git status
重新提交并上传
git add .
git commit -m "second submit"
P.S. 少个 -m 里 t…
git 实现版本切换
查看提交日志
当一个文件多次提交后,可以查看日志
git log
git log --pretty=oneline
# 将提交的信息显示为一行
git log --pretty=oneline --abbrev-commit
# 将提交的信息显示为一行
# 使得输出的 commitId 更简短
git log --pretty=oneline --abbrev-commit --all
# 将提交的信息显示为一行
# 使得输出的 commitId 更简短
# 显示所有分支
git log --pretty=oneline --abbrev-commit --all --graph
# 将提交的信息显示为一行
# 使得输出的 commitId 更简短
# 显示所有分支
# 以图的形式显示(该图非图片,而是结构)
插播:最后一条指令太过于冗长,我们可以通过设置快捷键设置自创一条指令。
设置 git 快捷键
在用户目录下创建 .bashrc 文件,所谓用户目录,对于我的电脑为 C:\Users\xhong
touch .bashrc
打开 .bashrc 文件,然后配置日志 log 快捷键 以及 ll 快捷键
alias git-log="git log --pretty=oneline --abbrev-commit --all --graph"
alias ll="ls -al"
保存退出,配置完成!!!
版本切换(一)
首先查看所有提交 log id
git log --pretty=oneline --abbrev-commit --all --graph
# 未设置快捷键
git-log
# 设置了快捷键
然后执行回退版本指令
git reset --hard beb4c4c
注意 beb4c4c 是我的一次 submit -m 的 id
再次查看文件,发现已经回滚到之前只有一行内容的情况。
版本切换(二)
如果我想回到回滚前的版本,但是 log 已经看不到回滚前的版本号了,怎么办?
git reflog
可以查看回滚记录,从而找回那个版本号
再次版本切换到回滚前的就可以
git reset --hard b133242
再次查看内容,发现又回到了两行的内容。
同文件夹下只想让部分文件 git 管理
问题描述
如果一个文件夹下我只有部分文件想通过 git 进行管理,该如何做???
案例解析
首先我们先初始化一个目录,然后创建两个文件 test.txt 以及 test1.a,
git init
touch test.txt
touch test1.a
我们首先查看有哪些文件被 git 管理
git status
我希望通过 git 对 test.txt 进行管理,而不对 test1.a 进行管理;
首先我们创建一个名为 .gitignore 的文件,用于记录当前文件夹中不被管理的文件名称;
touch .gitignore
通过 vim 打开.gitignore 文件
vim .gitignore
将不希望被 git 管理的文件名 test1.a 添加到 .gitignore 中
然后我们能再执行查看 git 状态命令,可以发现 test1.a 文件已经不被管理
下一节:
链接: