Git 命令行操作
git init
:初始化本地仓库
效果
注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。
形式:
用户名:tom
Email地址:goodMorning@atguigu.com
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
命令
git config user.nametom_pro
git config user.emailgoodMorning_pro@atguigu.com
git config --global user.nametom_glb
git config --global goodMorning_pro@atguigu.com
git status
:查看工作区、暂存区状态
git add [filename]
:将工作区的“新建/修改”添加到暂存区
*
代表当前目录的所有文件。git commit -m "commit message" [filename]
:将暂存区的内容提交到本地库
git log
:查看历史记录,显示完整的历史记录信息
多屏显示控制方式:
上面这种方法显示的历史记录可能不太好看:我们可以采用以下方法进行简化历史记录的显示:
git log --pretty=oneline
:我们可以使用此命令让历史记录放在一行上
git log --oneline
:缩短了哈希值的显示,只显示后面7位
上面的几种方法只能显示过去与现在
下面这个命令可以显示过去、现在和未来
git reflog
:这种方式可以看到我们所有的历史记录,包括回退前、回退后、过去、现在、将来。
HEAD@{移动到当前版本需要多少步}
本质:使用git reflog
来显示所有历史记录
可以使用以下方法来移动HEAD指针
基于索引值操作[推荐]
git reset --hard [局部索引值]
git reset --hard a6ace91
使用^
符号:只能后退
git reset --hardHEAD^
:一个^
表示后退一步,n个表示后退n步使用~
符号:只能后退
git reset --hardHEAD~n
:表示后退n步原本本地库、暂存区、工作区三者版本一致:
--soft
参数
--mixed
参数
--hard
参数(这个用的最多)
前提:删除前,文件存在时的状态提交到了本地库。
操作:git reset --hard [指针位置]
git diff [文件名]
:将工作区中的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]
:将工作区中的文件和本地库历史记录比较
git diff
:不带文件名比较多个文件
在版本控制过程中,使用多条线同时推进多个任务。
git branch [分支名]
:创建分支
git branch -v
:查看分支
git checkout [分支名]
:切换分支
合并分支
git checkout [被合并分支名]
git merge [有新内容分支名]
解决冲突
冲突的表现
git add [文件名]
第四步:git commit -m "日志信息"
注意:此时commit一定不能带具体文件名
git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
git push [别名] [分支名]
推送需要输入账号和密码:
git clone [远程地址]
效果
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]