第一步要配置用户信息:
鼠标右键 打开Git Bash Here 选项;
b. 第一步,开始:全局配置用户名和自己的邮箱 注意:--global 命令只需要运行一次,即可永久有效!
b.1.1)git config --global user.name “用户名”(按回车)
b.1.2)git config --global user.email “邮箱地址”(按回车)
注意:配置的用户名和邮箱地址会被写入到你所存储的 .gitconfig文件当中,该文件是全局配置文件,配置一次永久生效!
扩展:此电脑>C盘>用户>用户名> 该路径下可以看到 .gitconfig文件:
b.2)查看全局配置信息:
b.2.1)可查看所有全局配置信息:git config --list –global
b.2.2)查看指定的全局配置项:
返回用户名:git config user.name
返回邮箱:git config user.email
补充:使用 git help <verb>命令可以在无需联网的情况下b在浏览器打开帮助手册 ---verb指你需要查询的 “关键字” 即:
两种写法:1)git help config ---- 打开git cofig命令的帮助手册
git config -h ----(-h可以获得更加简明的 “hellp”输出)
Git基础 -Git的基本操作
{Git围绕以下操作运行:
1.Git中的三个区域:工作区(处理工作)、暂存区(已完成的工作的临时存放区域,等待被提交)、Git仓库(最终的存放区域);
2.Git中的三个状态:已修改(modified)、已暂存(staged)、已提交(committed);
3.工作区的四种状态:未被跟踪(Untracked)--未修改(Unmodified) --已修改(Modified) --已暂存(Staged);
获取Git仓库的两种方式---能够在自己的电脑上得到一个可用的Git仓库;
}
2.1将尚未进行版本控制的本地目录转换为Git仓库
2.1.1在需要上传的Git仓库的目录中,空白区域鼠标右键 "Git Bash Here"
2.1.2执行 git init命令,将当前目录转化为Git仓库 --- 以下是上传成功;
bingo:上传成功后会得到一个.git的隐藏目录,如果自动隐藏了就设置一下,还是没有那就是没成功:这个 .git目录就是当前项目的 Git仓库 ,是Git 仓库的必要组城部分
如果自动隐藏了,在这里勾选取消隐藏:
2.2.1检查文件状态
2.2.1.1.使用 git status 命令 检查文件状态 ,Untracked files--表示未跟踪的文件,说明该文件还在本地目录下,还未被 Git快照(提交),需要明确告知 Git ‘我需要使用Git跟踪管理该文件’,我们接着往下看:
补充:如果希望以精简的方式显示文件的状态,而不是像上面一样详细的报告,可以使用下面两条完全等价的命令: -s 是 short的简写形式:
题主更倾向于第一种:git status -s
第二种:git status -short
?? 表示当前文件是未被跟踪的文件
2.2.2 跟踪新文件
2.2.2.1 使用 git add 命令跟踪当前未被跟踪的命令文件,代码如下 :demo-git.html是题主自己的文件名,非唯一指定名:
git add demo-git.html
2.2.2.2再次输入 git status 命令 检查文件状态 ,会看到 你的文件夹在 changes to be committed 下面,说明已经被跟踪,并处于暂存状态:
再次输入精简模式: git status -s 会发现开头不再是 ?? 而是 A 表示该文件新添加到暂存区中
补充:快捷代码输入(这里就不做演示了,只有一个单词): clear 快速清空终端已经运行的代码 :焕然一新如下:
2.2.3提交更新 --当前文件还在暂存区中,现在要提交到Git仓库
执行 git commit -m +“本次的提交消息”命令提交,-m后面 + 本次的提交信息,相当于对提交内容做进一步的描述,自定义“提交的消息”:提交成功后代码如下:
再次检查文件状态:git status 得到如下提示:证明工作区中的所有文件都处于未修改的状态,没有任何文件需要被提交:
2.3对已提交的文件进行:修改文件内容、撤销操作、移除文件
2.3.1对已提交的文件进行修改:当我们修改了 当前文件的内容(例如题主的:demo-git.html 的内容),修改完后再次运行 git status 命令 和 git status -s 命令:
!会发现 我们自己的文件架下面出现在了 changes not staged for commit 下面,说明已跟踪文件的内容发生了改变,但是还没有放到暂存区!,没修改过的、没放入暂存区的文件前面有 M 标记;
2.3.2 暂存已修改的文件:
2.3.2.1再次运行 git add 命令 :本次使用的是第二种功能
该命令具有多功能,如下:
1)可以用来开始跟踪新文件;
2)把已跟踪的文件、且已修改的文件;
3)把有冲突的文件标记为已解决状态;
继续代码如下:
git add demo-git.htmll --把已修改的文件放入暂存区
git status -- 查看详细的文件状态报告
git status -s --查看精简的文件状态报告 绿色的 M 表示文件已修改且已放入暂存区
2.3.2提交已暂存的文件:
再次运行 git commit -m +“本次的提交消息”命令提交,即可将暂存区中记录的 文件的快照,提交到 Git仓库当中,代码如下:
并且再次 git status -- 查看工作区中文件的状态:
2.3.3撤销对文件的修改 (可能不常用) -- 把对工作区中对应文件的修改,还原成Git仓库中所保存的版本,注意:该操作的结果会造成所有的修改丢失,且无法恢复!危险性较高,建议谨慎操作!
代码如下:现在是已经修改了的代码,要撤销
git checkout -- demo-git.html
运行以上代码后,修改的代码已经还原成原先保存的版本内容!
该操作的本质是:用Git仓库中保存的文件,覆盖工作区中指定的文件!
2.3.4向暂存区中一次性添加多个文件:(常用)
如果,需要被暂存的文件个数较多,可以将所有文件一次性将所有的新增和修改过的文件加入到暂存区中,命令如下:
代码:
git status -s -- 命令表示精简地检查文件状态
-- M 表示修改过后的文件但是还没有进暂存
-- ?? 表示该文件未被跟踪,还在本地区
git add . -- 将所有的文件都加入到暂存区当中
目前已全部加入到暂存区:
-- A 表示新加入到暂存区
-- M 表示文件被修改并且被加入到暂存区
2.3.4取消已暂存的文件
如果需要从暂存区中移除对应的文件,使用如下命令,代码如下:git reset HEAD 要移除的文件名,demo-git.html 是题主自己的文件名,HEAD要大写!
git reset HEAD demo-git.html --取消已经暂存的demo-git.html文件
git status -s -- 命令表示精简地检查文件状态
-- A 表示新加入到暂存区
-- M 表示修改过后的文件但是还没有进暂存
git reset HEAD . --把所有已经暂存的文件一次性移除
git status -s -- 命令表示精简地检查文件状态
最终把三个文件还原成还没被暂存时的状态:
git add . --将所有文件一次性将所有的新增和修改过的文件统一加入到暂存区中:
git commit -m +“本次的提交消息”命令提交,将暂存区中记录的所有文件快照,提交到 Git仓库当中,代码如下:
2.3.5跳过使用暂存区 --Git的标准工作流程是工作区->暂存区->Git仓库,当觉得略显繁琐时,可以选择跳过暂存区,直接将工作区的修改提交到Git仓库当中,简化流程变成:工作区->Git仓库:
git commit -a -m "描述消息" -- -a 表示直接将所有已经跟踪过得文件暂存起来一并直接提交!
git status -s -- 命令表示精简地检查文件状态 ,如果没有得到结果,入下图最后一段所示,就表示没有需要还在暂存区或工作区的文件,即所有文件都已传入Git仓库!
M 表示修改过后的文件但是还没有进暂存
2.3.6移除文件:两种方式:
2.3.6.1从Git仓库和工作区中同时移除对应的文件,代码如下:
git rm -f h1.html --- 表示同时从Git仓库和工作区中移除 h1.html文件:
2.3.6.2只从Git仓库中移除指定的文件,但保留工作区中对应的文件,代码如下:
git rm --cached h2.html --- 表示只从Git仓库中移除指定的文件,但保留工作区中的 h2.html文件:
以上两个步骤的结果如下:
D --表示该文件已经被从工作区中删除,下次提交的时候,该文件已不在工作区和Git仓库中保存,或已不在Git仓库中保存!
-- ?? 表示该文件未被跟踪,但还在本地区
最终结果查询如下:
git commit -a -m "描述消息" -- -a 表示直接将所有已经跟踪过得文件暂存起来一并直接提交!
-- ?? 表示该文件未被跟踪,但还在本地区
2.3.6.2忽略文件:当我们有些文件无需被纳入Git仓库当中,也不希望总是出现在未跟踪文件列表,这种情况下我们可以:创建一个 .gitignore 的配置文件,罗列出要忽略的文件的匹配模式:
文件 .gitignore 的格式规范如下:
以 # 开头的是注释
以 / 结尾的是目录
以 / 开头防止递归
以 !开头表示取反
可以使用glob模式进行文件和文件夹的匹配(glob指简化了的正则表达式):
5.1 星号 * 匹配零个或多个任意字符
5.2 [abc] 匹配任何一个列在方括号中的字符(此案例匹配一个 a 或匹配一个 b 或匹配一个c)
5.3 问号 ? 只匹配一个任意字符
5.4 在方括号中使用 短划线分 隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0-9 的数字)
5.5 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z或a/b/c/z 等)
示例:
5.6 .gitignore文件的例子:题主选择的是忽略
5.6.1新建一个.gitignore 文件:
5.6.2自己选择一个编译器来填写代码,记事本也行,只要能保存,万物皆可写代码
测试发现已经把h2.html文件和demo1文件夹忽略:
git status -s ---命令表示查看精简的文件状态 ;
-- ?? 表示该文件未被跟踪,但还在本地区;
git add . ---命令表示将所有文件放入暂存区;
git commit -m +“本次的提交消息”---命令表示将暂存区中记录的所有文件快照,提交到 Git仓库当中 ;
git status ---命令表示查看文件状态
2.3.7查看提交历史:git log 命令简单有效 --- 快捷键 Q退出查看(相信我一定用得到,该命令运行结束后退出)
2.3.7.1按时间先后顺序列出所有的提交历史,最近的提交排在最前面--代码:git log
2.3.7.2只展示最新的两条提交历史--代码:git log -2
2.3.7.3在一行上展示最近两条提交历史的信息--代码:git log -2 --pretty-oneline ,提示代码如下
2.3.7.4在一行上展示最近两条提交历史的信息,并自定义输出的格式; %h 提交的简写 哈希值 %an 作者名字 %ar 作者修订日期,按多久以前的方式显示 %s 提交说明:git log -2 --pretty=format:"%h | %an | %ar | %s"
2.3.8回退到指定的版本:
2.3.8.1在一行上展示所有的提交历史 -- 代码:git log --pretty=oneline
2.3.8.2使用 git reset -hard 命令,根据指定的提交 ID 回退到指定版本--代码: git reset --hard <CommitID>
2.3.8.3在旧版本中使用--代码: git reflog --pretty=oneline 命令,查看命令操作的!所有!历史--代码:git reflog --pretty=oneline
2.3.8.4再次根据最新提交的 ID ,跳转到最想的版本--代码:git reset --hard <CommitID>
扩展: HEAD -> master 指的是:当前分支指向的是master分支;
小结:以上内容总共分为一下四个阶段
初始化GIt仓库的命令 --- git init
查看文件状态的命令 --- git status 或 git status -s
一次性将文件加入暂存区的命令 --- git add .
将暂存区的文件提交到Git仓库的命令 --- git commit -m "提交消息"