Git工具应用

104 阅读6分钟

安装

略. 傻瓜式安装即可...

Git 结构

Git 的结构有 工作区 ---》 暂存区域 ---》 本地库

image.png

作一个本地库

创建一个本地库gitResp,并使用 git init 初始化

image.png

创建一个 gitTxt的文本文件 ,我们可以使用 git status 来查看本地库的状态

image.png

使用 git add 文件名 将一个文件提交到暂存区域,然后在查询它的状态。

image.png

使用 git commit -m '提交备注信息' 命令来提交到本地库里面,然后查询状态

给出了以下的提示信息

image.png

解决思路就是在工程目录下的 .git 隐藏文件里面找到 config 配置。然后添加如下内容。其中email 和 name 都是随便写的,但是要注意中英文符号。

[user] 
	 email = 2691778746@qq.com
 	 name = nyc

然后重新提交,提交成功

image.png

基本操作命令总结

 git init                //初始化本地库
 git add  文件名          //添加文件到暂存区域
 git status              //查询状态
 git commit -m '备注'     //提交文件到本地库
 git clear               //清屏

git 操作日志

查询操作记录方式一:git log

image.png

查询操作记录显示在一行,方式二:git log --pretty=oneline

image.png

查询操作记录显示的内容更加简单,方式三:git log --oneline

image.png

查询操作记录方式四:

image.png

HEAD@{数字},指针回到当前这个历史版本需要走多少步

命令总结:

git log
git log --pretty=oneline
git log --oneline
git reflog

Git 版本回退

当前版本中gitTxt文件按里面的内容是: image.png

前一个版本gitTxt里面的内容是:

image.png

查看以下当前的日志记录

image.png

假如我想回退到的第二次提交的记录可以使用命令 git reset --hard 版本号

image.png

可以看到此时这个时候就已经回退了一个版本。相关参数应用如下:

相关参数

–hard 参数,使用这个参数的时候,本地库的指针移动的同时,重置暂存区和工作区

–mixed参数,使用这个参数的时候,本地库的指针移动的同时,重置暂存区,工作区不变

–soft参数,使用这个参数的时候,本地库的指针移动的同时,暂存区和工作区都不变

命令总结:

git reset --hard 版本号

文件删除操作

可以使用 rm 文件名 或者 直接使用鼠标删除,要注意,此时删除的只是工作区里面的内容,但是暂存区和本地库里面的内容都还

image.png

通过历史版本回退可以找回文件。

文件信息对比

文件信息对比可以使用git diff 文件名来进行文件信息的对比。

对比工作区域和暂存区域指定文件:

image.png

对比工作区和暂存区所有文件:git diff

image.png

比对暂存区和本地仓库:git diff [历史版本] [文件名]

image.png

命令总结:

git diff 文件名
git diff
git diff [历史版本] [文件名]

分支操作

查看分支:git branch -v

创建分支:git branch 分支名

第一次查看分支只有master分支,之后创建一个branch01的分支,然后在进行查看,发现现在有两条分支。

image.png

分支切换:git checkout 分支名称

切换到branch01,可以看到已经从master分支切换到branch01分支了

image.png

分支合并:git merge 分支名

分支合并的时候一定要在master分支下。

现在branch01分支下修内容并提交,在gitTxt文本里面添加如下内容

image.png

切换到master分支

image.png

开始进行合并

image.png

分支冲突问题和解决方案

分支冲突产生的原因:产生冲突的原因是有两个人修改了同一个文件,以上面的例子为准,假如我在master分支下修改gitTxt文件写入内容123,而另一个人在branch01分支下修改gitTxt文件写入内容456。此时在进行分支合并的时候就会产生分支冲突的问题。

master 分支修改内容

image.png

branch01 分支修改内容

image.png

开始合并:

可以看到产生了分支的冲突问题。现在处于一个合并的状态。

image.png

解决方案:

要么要master分支里面的内容或者branch01里面的内容,或者两者都要。在下面可以看到冲突的内容。选择我们想要的。

image.png

比如说我们现在只想要master分支里面的123 image.png

选择想要的内容,然后重新提交。

image.png

在合并的过程中出现了一些问题,可以使用 git merge --abort 命令来取消合并的状态

image.png

将本地库里面的内容提交到远程库

使用github 或者 码云都可以,推荐使用码云,因为是在国内访问速度上会比较快。

在码云上创建自己的仓库

image.png

创建完成以后,我们可以为这个远程库起一个别名git remote add origin 远程库地址 image.png

推送到远程分支,使用命令 git push 远程地址 远程分支

首次推送需要登录

image.png

输入码云的账号密码即可,可以看到如下提示,就代表已经推送成功了。

image.png

image.png

命令总结:

git remote add 别名 远程库地址          //为远程库地址起别名
    git push 远程地址 远程分支          //提交到远程分支

远程库文件拉取

现在我在刚才创建的远程库新创建一个文件

image.png

远程拉取方式1:可以通过fetch + merge 的方式

image.png

通过上面可以看到 fetch 他只是会将远程库的内容 抓取到本地,但是工作区并不更新。

抓取完毕以后可以切换到远程库看看里面的内容,切换到远程分支的命令是:git checkout 远程库地址/远程库分支

image.png

然后进行合并操作 merge 出BUG了 ----- 先看下一种方式

远程拉取方式2:可以通过 pull的方式

使用命令:git pull 远程地址 远程分支:本地分支

pull方式的拉取相当于fetch + merge 的操做。

image.png

如何将实现本地分支和远程分支的合并

假如现在本地有master分支和dev分支,远程同样也有master分支和dev分支。

解决这个问题的主要思路:

首先得知道当前是在哪一个分支  可以使用 git branch 命令

然后转换到master分支上  使用命令 git checkout master

之后你要将当前所在分支的内容合并在 master分支上,可以使用 git merge 分支名

最后将master分支上的内容提交到远程的master分支上。

----------------------------------------------------

如果想提交到dev分支上,操作步骤和上面类似