Git介绍
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
1.基本命令速查列表
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户邮箱 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
1.1命令演示
-
git config --global user.name(设置用户签名)
-
git config --global user.email(设置用户邮箱)
cat ~/.gitconfig(查看信息)
-
git init(初始化本地库)
说明:初始化本地库后,当前文件夹下会出现以.git结尾的文件夹,该文件夹默认不显示,如需显示请打开计算机设置中的显示设置,打开步骤请百度。
-
git status(查看本地库状态)
首次查看,工作区没有任何文件
新增文件test,并且写入内容
再次查看
git status
输入命令vim test.txt 查看文件内容
点击Ctrl+Z进行退出 -
git add 文件名(添加暂存区)
-
git commit -m “日志信息” 文件名(提交本地库)
-
git reflog (查看版本信息)
-
git log (查看版本详细信息)
2.Git 分支操作
2.1 什么是分支
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)
简单来说,分支就是一个副本,比如一个房间的两把钥匙,这两把钥匙都可以打开房间,然后进入或者操作房间等。列如成语中的双管齐下。
2.2 分支的常用命令速查
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
2.3 命令演示
-
git branch -v(查看分支)
注意:(*代表当前所在的分区) -
git branch -v(创建分支)
-
git checkout 分支名(切换分支)
我们发现当前分支变成并切换了刚才创建好的分支
紧接着在copy-fix分支上操作当前文件
选择当前需要修改的行数据(点击字母i进行选择),修改后点击esc键退出,然后按住Shift键双击Z键进行保存并退出
使用命令cat test.txt查看修改后的文件
–添加暂存区
git add test.txt
–提交本地库
git commit -m “copy-fix commit” test.txt
2.4 合并分支
2.4.1基本语法
1.git merge 分支名
首先通过命令git checkout 分支名切换到主分支
紧接着在master分支上合并分支。
命令: git merge copy-fix
2.4.2 产生冲突
冲突产生的表现:后面状态为 MERGING
冲突产生的原因: 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替 我们决定使用哪一个。必须人为决定新代码内容。比如以下示例:
首先我们在master分支上面对第二行内容进行追加
修改后进行git add test.txt添加暂存区
git commit -m “master commit” test.txt提交本地库
紧接着追加完成后切换成copy-fix分支,然后对相同位置做不同文字的追加,进行测试。保存修改后的文件方法上面以及提到。
修改后进行git add test.txt添加暂存区
git commit -m “master commit” test.txt提交本地库
再切换成master分支,通过命令git merge copy-fix进行合并分支测试
冲突产生的表现:后面状态为 MERGING。
通过命令cat test.txt查看
检测到有文件有两处修改
2.4.3 解决冲突
编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix
删除完成后进行退出并保存
–添加暂存区
git add test.txt
–提交本地库
git commit -m “copy-fix commit” test.txt
此时就已经显示成功,并且解决了冲突问题。