老师:封捷
Git命令行操作
本地库初始化:git init(执行后会初始化一个空的Git仓库,.git目录中存放的是本地库相关的子目录和文件,不能删除,也不能随便修改)
设置签名:
形式:
用户名:lxy
作用:区分不同开发人员的身份
命令:
项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name lxy
git config user.email admin@lixingyu.cn
配置保存位置:.git/config
系统用户级别:登录当前操作系统的用户范围
git config --global user.name lxy
git config --global user.email admin@lixingyu.cn
配置保存位置:用户目录下/.gitconfig
级别优先级:
就近原则:项目级别优先于系统用户级别
如果只有系统用户级别的签名,就以系统用户级别的签名为准
查看状态:git status(查看工作区、暂存区状态)
往暂存区添加文件:git add 文件名(将工作区的新建/修改操作的文件添加到暂存区)
从暂存区删除文件:git rm --cached 文件名
往本地库提交文件:git commit (-m "提交的信息") 文件名(将暂存区的内容提交到本地库)
查看版本记录:git log
简洁方式:1、git log -- pretty=oneline
2、git log --oneline(只显示回退后的版本,不显示回退钱的)
3、git reflog
前进后退版本:
基于索引值(推荐):git reset --hard 索引值
使用符号(只能往后退):git reset --hard HEAD(不加值默认为1,加两个为2,加三个为3)
使用~符号:git reset --hard HEAD~值(值为1表示回退1个版本,值为2表示回退2个版本)
注意:
reset命令的三个参数的对比:
--soft:仅仅在本地库移动HEAD指针
--mixed:在本地库移动HEAD指针,重置暂存区
--hard:在本地库移动HEAD指针,重置暂存区,重置工作区
永久删除文件后找回:
前提:文件存在时的状态已经被提交到了本地库。
使用git reset -- hard控制指针回退到某个没有删除的版本即可。
比较文件差异(和暂存区的文件比较):
git diff 文件名,不指定文件名时表示和所有文件比较
比较文件差异(和本地库的文件比较):
git diff HEAD 文件名,不指定文件名时表示和所有文件比较
比较文件差异(和历史版本的文件比较):
git diff HEAD^ 文件名,不指定文件名时表示和所有文件比较
回退修改:修改了文件,但没有提交到暂存区(将文件版本回退到最近一次提交的版本):
git checkout -- 文件名
回退修改:修改了文件,并且已经提交到暂存区(将文件从暂存区中删除):
git reset HEAD 文件名
将以上两条命令组合使用(先使用git reset HEAD,再使用git checkout -- 可以将提交到暂存区的文件恢复到最近一次提交的版本),可以实现回退修改,也可以实现回退删除
分支
分支简介:
分支是从主干直接复制出来的,也就是说,分支的第一个版本是主干的某一个版本。
分支开发完毕,则可以和主干进行合并。
分支的好处
1、同时并行一个项目的多个功能开发,提高开发效率。
2、如果某个分支开发失败,不会对现有项目(主干)造成影响。
分支命令
查看当前分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d