标签:linu MIXED 并保存 特殊 src 删掉 信息 项目 文件比较
一、本地库操作与设置签名
1、本地库初始化
上一篇介绍了安装Git客户端工具,安装完后在系统的任何地方右键都会看到Git GUI Here 和 Git Bash Here 两个菜单,点击 Git GUI Here 就会进入到Git的命令行界面,在该界面中可以完全使用Linux命令,如图:
本地初始化命令是:git init,执行该命令,会在所在目录创建一个.git的隐藏文件夹。
注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
2、设置签名,区分不同开发人员的身份
项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name xxx
git config user.email xxxxxx@xx.com
信息保存位置:./.git/config 文件,如下图
系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_glb
git config --global goodMorning_pro@atguigu.com
信息保存位置:~/.gitconfig 文件,如下图
优先级采用就近原则:二者都有时采用项目级别的签名,只有系统用户时采用系统用户级别,必须设置一种级别,一般用系统级别。
注意:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
二、基本操作
1、查看状态、添加、提交
git status:查看工作区、暂存区状态
git add [file name]:将工作区的“新建/修改”添加到暂存区
git commit -m "commit message" [file name]:将暂存区的内容提交到本地库
演示:
On branch master:在master分支
No commits yet:本地库还没有任何东西提交(因为提交的东西放在本地库)
nothing to commit (create/copy files and use "git add" to track):暂存区没有任何可以提交的东西,可以用git add命令追踪
(1)新建good.txt,执行git status
文件变红,可以用git add添加到暂存区,下面执行git add good.txt
已经添加到暂存区了,红色框中的不用管,关于行末转化什么的。在执行一下git status
暂存区有变化,可以被提交,显示new files,文件变成绿色,也可以执行git rm --cached good.txt移除暂存区,请看下图
回到了新建后的状态。现在添加到暂存区,执行git commit good.txt,会跳转到输入提示页面,如下:
输入提示,保存退出,可以看到提示:“my first commit hahahha”,如下图
[master (root-commit) c8b004c] my first commit hahahha:master分支,root-commit第一次提交,c8b004c理解为版本,现在查看一下状态
nothing to commit, working tree clean:没有可以提交的,工作区、暂存区 is clean。
(2)编辑并保存good.txt,执行git status
文件变成了红色的,并且是modified,可以先执行git add good.txt(添加到暂存区),再执行git commit good.txt(提交到本地库)
1 file changed, 1 insertion(+):修改了一个文件,添加了一行。
修改后也可以直接提交,执行git commit -m "My test commit" good.txt
2、查看历史记录、前进后退版本
git log:显示完整历史记录信息,包括哈希值、提交者、邮箱、提交日期、提交注释。
多屏翻页,空格向下翻页、b向上翻页、q退出
git log --pretty=oneline:显示哈希值和注释
git log --oneline:显示前面的部分哈希值和注释
git reflog:显示部分哈希值、注释,回退步数(HEAD@{移动到当前版本需要多少步}),可以查看之前的版本
前进或者回退
git reset --hard [局部索引值] :回退到指定的哈希值版本
git reset --hard HEAD^:回退一步
git reset --hard HEAD^^:回退两步,几个^表示回退多少步
git reset --hard HEAD~n:回退n步
注意:^、~只能回退
演示:
当前版本是1f86cfa,HEAD->master表示当前版本,master分支。
回退到j , git reset --hard 3a20344
回退到h,git reset --hard 5906e69
从g回退到f,执行 git reset --hard HEAD^
从f回退到c,git reset --hard HEAD^^^
先向前进到k( git reset --hard 1f86cfa),在回退到f ,需要5步(git reset --hard HEAD~5)
git reset 三个参数比较
--soft 参数:仅仅在本地库移动HEAD 指针
--mixed 参数:在本地库移动HEAD 指针、重置暂存区
--hard 参数:在本地库移动HEAD 指针、重置暂存区、重置工作区
3、文件的删除与找回
rm xxx:删除文件xxx,其实是将文件移到了工作区,真正的删除还要执行 git add 和 git commit
删除操作尚未提交到本地库找回:指针位置使用HEAD,执行git reset --hard HEAD
删除操作已经提交到本地库找回:指针位置指向历史记录,执行git reset --hard 哈希值
注意:只有曾经提交到过本地库的才能找回。
示例:本地库添加aaa.txt,删除并找回。
4、文件比较
git diff [文件名]:将工作区中的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]:将工作区中的文件和本地库历史记录比较
不带文件名比较多个文件
演示:红色的是删掉的,绿色的是增加的
演示:比较全部文件,不加文件名,将aaa.txt提交到暂存区后,只比较bbb.txt,因为只有bbb.txt工作区和暂存区不一样。
将两个文件提交,演示比较历史版本:
5、分支管理
(1)分支概述:本地库会默认创建一个master(主分支),如果有开发任务可以复制出别的分支,比如feature_blue分支、feature_game分支等,每个分支可以互不影响、并存开发。假如有别的分支开发失败,不会影响master分支,始终保持master分支是完好的。其它分支开发完、测试完合并到master分支,master作为一个大版本升级。假如master分支上发现bug,创建一个hot_fix分支,修复完再合并到master上。
分支定义:在版本控制过程中,使用多条线同时推进多个任务。
分支好处:
a、同时并行推进多个功能开发,提高开发效率;
b、各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
(2)分支操作:
git branch -v:查看分支,当前分支显示绿色
git branch 分支名:创建分支,创建后的分支与主分支内容保存一致
git checkout 分支名:切换分支,切换到哪个分支操作哪个分支
git merge 分支名(有新内容的):合并分支,合并分支前必须切换回到接收内容的分支
示例:创建分支hot_fix,并修改内容提交,切换回master分支后,master分支无法看到最新的内容,hot_fix分支的版本高一个
示例:将hot_fix分支合并到master分支,master与hot_fix版本号一致,并且看到最新的内容
合并冲突:两个分支修改了同一个文件的同一个位置,会产生冲突,只能手工合并分支
合并步骤:
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m "日志信息",注意:此时commit 一定不能带具体文件名
示例:阅读步骤,先左右后上下
标签:linu MIXED 并保存 特殊 src 删掉 信息 项目 文件比较
原文地址:https://www.cnblogs.com/javasl/p/12562352.html