安装
略. 傻瓜式安装即可...
Git 结构
Git 的结构有 工作区 ---》 暂存区域 ---》 本地库
作一个本地库
创建一个本地库gitResp,并使用 git init 初始化
创建一个 gitTxt的文本文件 ,我们可以使用 git status 来查看本地库的状态
使用 git add 文件名 将一个文件提交到暂存区域,然后在查询它的状态。
使用 git commit -m '提交备注信息' 命令来提交到本地库里面,然后查询状态
给出了以下的提示信息
解决思路就是在工程目录下的 .git 隐藏文件里面找到 config 配置。然后添加如下内容。其中email 和 name 都是随便写的,但是要注意中英文符号。
[user]
email = 2691778746@qq.com
name = nyc
然后重新提交,提交成功
基本操作命令总结
git init //初始化本地库
git add 文件名 //添加文件到暂存区域
git status //查询状态
git commit -m '备注' //提交文件到本地库
git clear //清屏
git 操作日志
查询操作记录方式一:git log
查询操作记录显示在一行,方式二:git log --pretty=oneline
查询操作记录显示的内容更加简单,方式三:git log --oneline
查询操作记录方式四:
HEAD@{数字},指针回到当前这个历史版本需要走多少步
命令总结:
git log
git log --pretty=oneline
git log --oneline
git reflog
Git 版本回退
当前版本中gitTxt文件按里面的内容是:
前一个版本gitTxt里面的内容是:
查看以下当前的日志记录
假如我想回退到的第二次提交的记录可以使用命令 git reset --hard 版本号
可以看到此时这个时候就已经回退了一个版本。相关参数应用如下:
相关参数
–hard 参数,使用这个参数的时候,本地库的指针移动的同时,重置暂存区和工作区
–mixed参数,使用这个参数的时候,本地库的指针移动的同时,重置暂存区,工作区不变
–soft参数,使用这个参数的时候,本地库的指针移动的同时,暂存区和工作区都不变
命令总结:
git reset --hard 版本号
文件删除操作
可以使用 rm 文件名 或者 直接使用鼠标删除,要注意,此时删除的只是工作区里面的内容,但是暂存区和本地库里面的内容都还
通过历史版本回退可以找回文件。
文件信息对比
文件信息对比可以使用git diff 文件名来进行文件信息的对比。
对比工作区域和暂存区域指定文件:
对比工作区和暂存区所有文件:git diff
比对暂存区和本地仓库:git diff [历史版本] [文件名]
命令总结:
git diff 文件名
git diff
git diff [历史版本] [文件名]
分支操作
查看分支:git branch -v
创建分支:git branch 分支名
第一次查看分支只有master分支,之后创建一个branch01的分支,然后在进行查看,发现现在有两条分支。
分支切换:git checkout 分支名称
切换到branch01,可以看到已经从master分支切换到branch01分支了
分支合并:git merge 分支名
分支合并的时候一定要在master分支下。
现在branch01分支下修内容并提交,在gitTxt文本里面添加如下内容
切换到master分支
开始进行合并
分支冲突问题和解决方案
分支冲突产生的原因:产生冲突的原因是有两个人修改了同一个文件,以上面的例子为准,假如我在master分支下修改gitTxt文件写入内容123,而另一个人在branch01分支下修改gitTxt文件写入内容456。此时在进行分支合并的时候就会产生分支冲突的问题。
master 分支修改内容
branch01 分支修改内容
开始合并:
可以看到产生了分支的冲突问题。现在处于一个合并的状态。
解决方案:
要么要master分支里面的内容或者branch01里面的内容,或者两者都要。在下面可以看到冲突的内容。选择我们想要的。
比如说我们现在只想要master分支里面的123
选择想要的内容,然后重新提交。
在合并的过程中出现了一些问题,可以使用 git merge --abort 命令来取消合并的状态
将本地库里面的内容提交到远程库
使用github 或者 码云都可以,推荐使用码云,因为是在国内访问速度上会比较快。
在码云上创建自己的仓库
创建完成以后,我们可以为这个远程库起一个别名git remote add origin 远程库地址
推送到远程分支,使用命令 git push 远程地址 远程分支
首次推送需要登录
输入码云的账号密码即可,可以看到如下提示,就代表已经推送成功了。
命令总结:
git remote add 别名 远程库地址 //为远程库地址起别名
git push 远程地址 远程分支 //提交到远程分支
远程库文件拉取
现在我在刚才创建的远程库新创建一个文件
远程拉取方式1:可以通过fetch + merge 的方式
通过上面可以看到 fetch 他只是会将远程库的内容 抓取到本地,但是工作区并不更新。
抓取完毕以后可以切换到远程库看看里面的内容,切换到远程分支的命令是:git checkout 远程库地址/远程库分支
然后进行合并操作 merge 出BUG了 ----- 先看下一种方式
远程拉取方式2:可以通过 pull的方式
使用命令:git pull 远程地址 远程分支:本地分支
pull方式的拉取相当于fetch + merge 的操做。
如何将实现本地分支和远程分支的合并
假如现在本地有master分支和dev分支,远程同样也有master分支和dev分支。
解决这个问题的主要思路:
首先得知道当前是在哪一个分支 可以使用 git branch 命令
然后转换到master分支上 使用命令 git checkout master
之后你要将当前所在分支的内容合并在 master分支上,可以使用 git merge 分支名
最后将master分支上的内容提交到远程的master分支上。
----------------------------------------------------
如果想提交到dev分支上,操作步骤和上面类似