git
版本管理软件
-
版本管理系统
- 版本管理系统就是为了解决上述这些问题应运而生的
- 版本管理,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修改情况的系统。
-
作用
- 记录每次代码的变更,以便将来查阅特定版本的修改情况
- 完成多人协作(必须配合远程仓库)
- 版本管理软件的分类
- 集中式(SVN、CVS、……)
- 分布式(Git、HG、bazaar、……)
-
安装Git及必要配置
-
安装Git
一直下一步安装即可。
如果你不想安装在C盘,则把路径中的C修改为D或者E即可。
安装成功后,桌面不会有任何图标
在任何文件夹空白处,点击鼠标右键,看到多了两个右键菜单,表示安装成功
Mac系统,打开终端,输入 == git --version == 回车,看到Git版本号表示安装成功
-
必要配置
当我们使用Git记录代码的版本的时候,Git需要知道你是谁?也就是提交代码的人是谁?
Git要求,必须配置一个用户名和一个邮箱 - 重要
用户名,配置成自己名字的全拼(如 DaHuang)
邮箱,最好配置成和你的 码云、Github相同的邮箱(如 123456@qq.com)
具体操作
1、windows用户,在任何文件夹空白处,鼠标右键,打开 “Git Bash Here”; Mac用户打开终端窗口
2、在出现的终端窗口中,输入 git config --global user.name “xxx” ,回车执行该命令,用以配置用户名
3、在出现的终端窗口中,输入 git config --global user.email “xxx” ,回车执行该命令,用以配置邮箱
Windows 用户
C:\Users\你电脑的用户名.gitconfig 文件,用记事本打开即可看到配置
假设我们开发一个项目,首先进入到项目目录中
文件夹空白处,鼠标右键,打开 “Git Bash Here” 窗口
执行 git init 命令,完成仓库的初始化
得到
执行 git init 表示初始化一个本地仓库
一个项目,如果要使用Git对其进行管理,必须先初始化
初始化之后,会在项目文件夹中出现叫做 .git 的隐藏文件夹;有关git的全部记录都在它里面,不要轻易删除。
你的电脑中,肯定会有很多项目,所以,初始化的时候,必须要注意路径,注意路径是不是项目文件夹
绝对不能嵌套初始化
假设我们开始开发项目了,所以随便创建 1 个 或 几个 文件,里面随便写点东西(模拟写了很多代码即可)
下一步,使用Git记录这次代码的变更,需要依次执行下面两个命令
git add .
git commit -m ‘提交了初始的代码’.
继续,继续开发,继续写代码、删除代码、修改代码、添加文件、修改文件、删除文件等等……
下一步,使用Git记录这次代码的变更,还是需要执行那两个命令
git add .
git commit -m ‘完成了登录功能’
继续,…….,重复几次。每次代码更改后,都可以使用这两个命令记录代码变化后的样子。
Git 常见的标志
U: 未跟踪的文件(你需要完成添加跟踪才能进行提交)
A: 新增的文件
D: 删除的文件
M: 修改的文件
C: 文件内有冲突.
查看提交日志
git log
如果日志比较多,后面会出现 :
按 ↓ 键,可以查看剩余的日志
按 q 键,退出
git log 命令后面,可以跟一些选项;
如同调用一个函数,传递一些参数一样
命令后跟不同的选项,得到的结果也不一样
git log --oneline 单行查看简略版日志
git log -n 查看最近 n 次提交
git log --reflog 可以查看到当前版本之后的日志
git log --reflog --oneline 也可以这样配合使用
回到历史版本
如果想回到历史版本,查看当初的代码是怎样的,可以使用
git reset --hard 版本号
该命令,可以在任意版本中 “穿梭”,如同穿越一样
穿梭到历史版本后,看看代码有没有回退回去???是不是很神奇
实际上,不但可以查看代码的变化,文件的变化也能被Git记录下来;我们说的代码的变更和文件的变更是一个意思
版本号是40位长的一个字符串,它保证每个版本的版本号是唯一的
实际使用中,可以只使用版本号的前几位即可,只要不重复就可以用
三个区域
Git内部实现,离不开它维护的三个区域
工作区
暂存区
仓库
命令
远程仓库
将本地仓库推送到远程
其他相关命令
常见问题
分支
分支相关命令
分支合并
分支合并的冲突
小结
分支在工作中肯定属于常用操作
初到公司,你可能没什么机会合并分支(一般都是组长或项目经理的工作)
切换分支的时候,一定要将当前工作的分支保存了(提交、存储等)(注意存储不是add,是另外的知识点)
要熟悉创建分支、查看分支、切换分支等常用命令
分支合并,要注意看提示。千万不可以“视冲突而不见”
快进模式的合并,肯定不会有冲突
三方模式合并,无论有没有冲突,肯定会提交一次
多人协作
命令