——git是分布式版本控制工具,而github是一个git的一个代码托管中心
——对于局域网环境下,可以有gitlab,对于网络环境(外网)有github和码云。
——git的主要功能就是为了管理本地库和远程库之间的联系。
git init
# 在e:/git/weChat/的目录下初始化一个git仓库,初始化以后生成一个.git文件
ls -lA
# 显示隐藏的.git目录
ll .git/
# 显示.git目录下所有的文件
注意:git目录中存放的是本地库相关的子目录和文件,不要删除也不要胡乱修改
→ 形式
用户名:tom
Email地址:[email protected]
→ 作用:区分不同开发人员的身份
→ 辨析:这里设置的签名和登录远程库(代码托管中心)账号密码没有任何关系。
→ 命令:
$ 项目级别/仓库级别(仅在当前本地范围内有效)
git config user.name tom_pro
git config user.email [email protected]
# 实际修改在了.git/config的文件中
$ 系统用户级别(登录当前操作系统的用户范围)
git config --global user.name MoonSky
git config --global user.email 22773909492qq.com
# 文件保存在了c:/Users/22773/.gitconfig 这个文件中
$ 级别的优先级
@ 就近原则:项目优先级 > 系统用户优先级,二者都存在时采用项目优先级的签名
@ 如果只有系统用户级别的签名,就以系统用户级别的签名为准
@ 二者都没有不允许
查看状态命令:
git status
'''
On branch master 处于master的分支上
No commits yet 还未提交过文件(本地库是空的)
nothing to commit 没有东西能提交(暂存库是空的)
'''
新建一个文件
vim hello.py
git status
'''
其他一样
hello.py 变红,表示还没有被放入到暂存区
'''
将文件上传到缓存区
git add hello.py
'''
有一个警告,是关于windows和linux的句末结束的区别
'''
将文件从缓存区移除
git rm --cached hello.py
git status
调加到本地库
git commit hello.py
git status
'''
git commit hello.py 会启动vim 来写入本次提交的内容
'''
然后修改hello.py文件
vim hello.py
git status
'''
加一行代码
print("hello,world")
出现新的提示
hello.py文件已经被修改 可以使用git add和git commit 两个命令将文件重新提交到暂存区
也可以使用git commit -a 将文件重新提交到暂存区
'''
将修改的文件重新提交到暂存区
git add hello.py
git status
将修改的文件从暂存区提交到本地库
git commit -m "this is my second commit,modified hello.py" hello.py
'''
这个方法可以不用进入vim编辑器
'''
总结
a、查看状态(查看工作区、暂存区的状态)
git status
b、添加操作(将工作区的"新建/修改"添加到暂存区)
git add [file name]
c、提交操作(将暂存区的内容提交到本地库)
git commit -m "commit message" [file name]
最完整的查看(可能多屏,空格向下翻页,b向上翻页,q退出)
git log
将每一条log只显示一行
git log --pretty=oneline
将上边的显示精简
git log --oneline# 只能查看HEAD之前的版本,不能查看后边的
能查看返回哪一个版本需要几步的命令,head@{移动到当前版本需要的步数}
git reflog
本质
方法
<1> 基于索引值操作(推荐)
git reset --hard [局部索引值]
git reset --hard fdf9d81
'''
前进后退都用git reset --hard 来完成
'''
<2> 使用^符号:只能后退
·git reset --hard HEAD^
·注:一个^只能后退一步,n个^表示后退n步
git reset --hard HEAD^
tail -n 2 hello.py # 查看hello.py文件的最后两行
<3> 使用~符号: 只能后退
·git reset --hard HEAD~n
·注:表示后退n步
git reset --hard HEAD~2
tail -n 2 hello.py # 查看hello.py文件的最后两行
对比reset不同命令的三个参数
--soft 参数
仅在本地库移动HEAD指针
--mixed参数
在本地库移动HEAD指针
重置暂存区(相当于暂存区同本地库的HEAD一起移动)
--hard参数
在本地库移动HEAD指针
重置暂存区
重置工作区
将文件在工作区写好提交到暂存区和工作区以后,就会产生一个版本日志,即使删掉了文件,只要回退一个版本,就可以重新找到文件。
a、新建一个文件,将其提交到暂存区和工作区
vim hi.py
git add hi.py
git commit -m "new hi.py" hi.py
b、删除hi.py文件,查看其状态
rm hi.py
git status
c、将删除hi.py这条记录添加进本地库
git add hi.py
git commit -m "deleted hi.py" hi.py
git status
d、查看版本日志并且通过后退版本恢复hi.py
git reflog
git reset --hard [版本索引]
cat hi.py