git基本概念(1)
部分参考:
对给git配置邮箱和用户名的理解_ITWANGBOIT的博客-CSDN博客_git为什么要配置用户和邮箱
工作区和暂存区 - 廖雪峰的官方网站 (liaoxuefeng.com)
开始
git config --global user.name "今年一定暴富" git config --global user.email "3378404370@qq.com"
结果:
需要配置前提:
远程仓库一般支持两种协议:SSH和HTTPS,SSH协议只认机器,HTTPS协议只认账号;也即为:如果使用SSH操作远程仓库的话,我们需要使用公钥和私钥对来做权限的认证,如果使用HTTPS操作远程仓库,则需要使用账号密码来做权限的认证。无论是公钥私钥对,还是账号密码,都只做权限的认证;但是远程仓库里需要记录这些提交记录是由谁来完成的;所以我们需要给本地的git设置用户名和邮箱,用于从本地仓库向远程仓库提交记录时,在远程仓库记录下这些操作是由谁来完成的
为什么要配置:
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址(名字和邮箱都不会进行验证),这样远程仓库才知道哪次提交是由谁完成的。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
配置的用户名和邮箱对push代码到远程仓库有什么影响
首先,配置的用户名和邮箱对push代码到远程仓库时的身份验证没有作用,即不用他们进行身份验证;他们仅仅会出现在远程仓库的commits里。(不会进行身份验证,只会出现在Coomit里面)
其次,按正常操作来说,你应该配置你的真实用户名和邮箱,这样一来在远程仓库的commits里可以看到哪个操作是你所为。
最后,这个用户名和邮箱是可以随便配置的(不提倡),如果你配置的邮箱是github里真实存在的邮箱,则commits里显示的是这个邮箱对应的账号;如果配置的邮箱是一个在github里不存在的邮箱,则commits里显示的是你配置的用户名。
创建
git init
初始化一个git 可以管理的库 会返现文件夹下多了一个.git,这个目录是Git来跟踪管理版本库的
操作本地仓库
touch readme.txt 创建文件命令 git add readme.txt 添加readme.txt 加入缓冲区 git commit -m "write a readme.txt" 从缓冲区提交到本地
touch file1.txt file2.txt file3.txt
git add file1.txt file2.txt file3.txt 添加缓冲区
git commit -m "add 3 files"
结果如图
git status 查看工作区的状态
对 readme.txt进行修改
git diff readme.txt //查看变动
git log 打印日志git log --pretty=oneline 简单显示 这里没有
回退版本
gitreset --hard HEAD^ 回到上一个版本
git reset --hard HEAD^^ 回到上上个版本 ^表示的是上个 ^理论上有上百个HEAD
:HEAD
就是指向当前分支当前版本的游标
如图
如果在想回到上个版本怎么办,如果没关 那么
回退的原理
从git reflog 可以看到commitid 92339b8
工作区:
就是在电脑里能看到的目录
一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
如果不用git add 那么不会提交到缓冲区