Git使用说明
GitHub:https://github.com/
码云:https://gitee.com/
模块主要分为:基础,常用操作,分支、回退、常见错误。
一:基础
1.Git 和 SVN的主要区别
- Git是分布式管理,SVN是集中式管理,
- Git支持离线操作,SVN仅支持联网操作
2.Git的基本操作
为了更好的描述和传达,阅读前需要进行一些概念的统一
- repository(仓库):git中有两种repository,一个是remote(线上),还有一个是local(本地)。都是存储project的所有的内容。
- branch(分支):一个project的镜像。
3.初次使用:
//一个完整的步骤如下:
step1:初始化账号姓名
step2:上传文件
step3:同步
二:常用操作
1.push操作:
eg:把本地分支test提交到远程仓库master
git push origin test:master //与此时在哪个分支没有关系,可以是当前的分支,也可是别的的分支。
push操作可能不成功,此时可以强制push:
原因:可能是因为远程、本地的文件不匹配导致的,强制push会覆盖远程的文件
git push -f origin master //强制push到远程 参数-f:表示强制推送到远程。
2.pull操作
git fetch和git pull的区别:
git fetch:从远程获取最新版本到本地,不会自动merge
git pull:从远程获取最新版本并merge到本地,pull=fetch+merge
注:本地看不到远程的分支,使用git fetch,则可以看到了。
3. 远程仓库
4. 撤销add的到缓存区的文件
git clean -f //清除没add的文件、文件夹
git rm --cached fileName:撤销add到缓存区中的文件
如需撤销文件夹加上-r:git rm -r --cached fileName
git diff 文件名:查看修改了那些内容
git checkout 文件名:强制回退到修改之前的内容
5.状态查询:git status
6.查看日志:
git log //默认查看当前分支的日志信息; 会按提交时间列出所有的更新,最近的更新排在最上面
git log -3 //查看最近3次的提交日志信息
git log bug_188 -3 //查看具体某一个分支的日志信息
git log --pretty=oneline -3 //显示最近3条日志,并按行信息日志信息
7.修改内容对比:
git diff 文件名:查看修改了那些内容
git比较两个文件,修改与本地比较,查看文件修改了哪些内容
git diff branch1 branch2 --stat
显示出所有有差异的文件列表
git diff branch1 branch2 文件名(带路径)
显示指定文件的详细差异
git diff branch1 branch2
显示出所有有差异的文件的详细差异
8.commit提交信息
查看commit的id 对应修改了哪些文件:git show commit的id --stat
查看某次commit修改的内容: git show commit的id
修改commit的提交信息
(1)修改最后一个commit的信息:
git commit --amend
如果提示编辑器不存在设置全局配置git的编辑器
git config --global core.editor vim
在弹出的编辑框中进行修改,之后保存退出
(2)修改之前commit的信息:
git rebase --interactive commit的id
该命令会列出当前commit的id之后提交的commit信息列表
弹出编辑页面,把commit的id前的 pick 改成 r 保存,会弹出修改commit信息的页面
9.查看标签
git tag -l
三:分支
1.本地分支:
2.远程分支:
3.查看分支:
4.git checkout命令:
检出,是我们最常用的命令。最常见的场景:创建分支,切换分支。
5.分支合并
新建dev分支,在该分支下创建文件,进行操作。操作完成后,在dev分支下进行commit提交,此时master看不到dev分支下的文件了。所以我们需要将dev分支的内容合并到master上面。
此时我们可以git checkout到master分支,把dev分支的工作成果合并到master分支上。此时master分支就可以看到dev分支提交的文件了。
管理员:
别人将代码提交到远程的dev分支,管理员会pull到本地,确保没问题,再合并到本地的master,最后push到远程的master分支。
四.clone克隆
五:回退reset

reset三种类型:
1.git reset --mixed commit的id
还原到commit的id,(git reset 默认是mixed )此commit之后的文件变成modified红色(即还没add的状态)
2.git reset --soft commit的id
还原到commit的id,此commit之后的文件变成modified绿色(即add(勾选中)的状态)
3.git reset --hard commit的id
还原到commit的id,此commit之后的文件都被还原
注:还原的时候,应该提前一个commitId:
