状态查看操作
git status -- 查看工作区暂存区的状态
添加操作
git add (file name) -- 将工作区的“新建/修改”添加到暂存区
提交操作
git commit -m “commit message” (file name)
查看历史版本
git log(展示完整信息) 多屏显示控制方式:空格向下翻页 b:向上翻页 q:退出
git log --pretty=oneline
git log --oneline
git reflog
本质:
基于索引值操作(推荐)
git reset --hard[局部索引值]
git reset --hard a6ace91
- 使用^符号:只能往后退
git reset --hard Head^(注:一个^表示后退一步,n个表示后退n步)
- 使用~符号
git reset --hard HEAD~n(注:n表示后退n步)
reset命令的三个参数对比
- --soft参数 (仅仅在本地库移动HEAD指针)
- --mixed参数
在本地库移动HEAD指针
重置暂存区
3.--hard参数
在本地库移动HEAD指针
重置暂存区
重置工作区
删除文件并找回
前提:删除前,文件存在时的状态提交到了本地库
操作:git reset --hard[指针位置]
删除操作已经提交到本地库;指针位置指向历史记录
删除操作尚未提交到本地库;指针指向HEAD
比较文件差异
git diff[文件名]
将工作区的文件和暂存区进行比较
git diff[本地库中的历史版本][文件名]
将工作区中的文件和本地库历史记录进行比较
不带文件名比较多个文件
分支操作
创建分支:git branch [分支名]
查看分支:git branch -v
切换分支:git checkout [分支名]
直接创建分支:git checkout -b [分支名]
合并分支
第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并分支名]
第二步:执行merge
git merge [有新内容分支名]
解决冲突
冲突的表现
冲突的解决
第一步:编辑文件,删除特殊符号
第二步:把文件改到满意的程度,保存退出
第三步:git add[文件名]
第四步:git commit -m“日志信息”(注意:此时commit一定不能带具体文件名)
远程仓库操作
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址
起别名 git remote add origin https://github.com/GithubCoderVic/huashan.git
git push 别名 分支 (推送本地分支上的内容到远程仓库 )
git clone 远程地址 将远程仓库的内容克隆到本地
效果:
- 完整的把远程库下载到本地
- 创建origin远程地址别名(相当于git remote add 别名 远程地址)
- 初始化本地库(git init)
git pull 远程库地址别名 远程分支名
将远程仓库对于分支最新内容拉下来后与
当前本地分支直接合并
邀请加入团队
1)选择邀请合作者
2)填入想要合作的人
3)复制地址并通过微信钉钉等方式发送给该用户,复制内容如下 : https://github.com/atguiguyueyue/git-shTest/invitations
4)成功之后可以在 atguigulinghuchong 这个账号上看到 git-Test 的远程仓库。
5)令狐冲可以修改内容并push到远程仓库
拉取
Pull = fetch + merge
git fetch [远程地址别名] [远程分支名]
git merge [远程地址别名/远程分支名]
git pull [远程仓库地址别名] [远程分支名]
解决冲突
- 要点:
- 如果不是基于github远程库最新版所做的修改,不能推送,必须先拉取
- 拉取下来后如果进入冲突状态,按照“分支冲突解决”解决即可
- 类比
债权人:老王
债务人:小刘
老王说:10天后归还。小刘接受,双方达成一致;
老王媳妇说:5天后归还。小刘不能接受,老王媳妇需要找老王确认后在执行。