【步伐员小技巧】git的常用操作(图解)
日常中git的常见的技巧用户的基本信息
git config [选项]
[*] user.name 用户名
[*] user.email 用户的邮箱
[*] –global让我们整台机器的git都使用user.name user.email作为config
[*] –l
[*] –unset: 重置
示例
git config --user.name “Jerry”
git config --user.email “1746702883@qq.com”
https://i-blog.csdnimg.cn/direct/377940ee39814076980ef3f4759ef5e3.png
加上–global就是变成全局的
查看老版本和新版本git的差别
[*]git diff 文件名
版本回退
git reset +参数
[*]git reset --soft: 回退版本库版本
[*]git reset --mixed(默认) : 回退版本库和暂存区
[*]git reset --hard(一样平常不发起): 回退版本库,暂存区,工作区到上一个提交的版本
工作区暂存区版本库xxxcodexxxcodexxxcodexxxcodexxxcodexxxcode 打消我们的修改
[*]情况一(我们写了再上一次提交后,又写了很多代码,但是写的差强人意):代码还在工作区,还没有add
办理方式:
[*] git checkout – filename(注意这里的–很紧张) 这条下令的作用是将filename回退到最近一次add或者commit的状态
[*] 也可以手动手动修改,当然这是强烈不发起的
[*]情况二:代码add后,还没有commit(在暂存区中)
办理方式:
[*] git reset --hard: 将我们回退到当前的版本,将我们的工作区和暂存区回退到版本库的版本
[*] (推荐) git reset --mixed + git checkout – filename : 可以大概更加符合预期的资助我们举行回退
好比说我想要回退file1.txt
git reset --mixed(可以) HEAD file1.txt(将file1.txt回退到当前commit的版本)
git checkout -- file1.txt(将file1.txt回退)
[*]情况三:代码commit后,最新版本(没有举行push)
办理方法:
[*] 暴力解法: git reset --hard HEAD^: 直接暴力将版本回退到上一个版本
[*] 最优解: git reset --mixed HEAD^ + git checkout – filename : 可以更加定制化的举行回退的需求。
这里可以类比上一个操作
怎样删除版本库中的文件
[*] rm工作区文件 + add + commit
[*] git rm filename + commit: 但我以为有点多此一举
git举行分支管理(git第一个杀手锏)
类似于开个分身同时举行学习,然后最后举行合并,类似于多线程操作,可以大概大大进步开发的服从。
master一样平常称作我们的主分支。
git branch可以直接看当前有哪些本地分支。master分支是默认的。*表示HEAD指向仓库的不同的分支,我们当前工作的分支。
创建分支
git branch dev
创建后的状态
https://i-blog.csdnimg.cn/direct/032e601a120749e695d3cf1ed2eb1770.png
切换分支
git checkout [分支名]
好比:git checkout dev
https://i-blog.csdnimg.cn/direct/423dcfca80004b4cac02c5ff801998f2.png
删除分支
git branch -d(delete) 分支的名称
https://i-blog.csdnimg.cn/direct/f55f8c87a9ba4e99bde52298f651e5a7.png
注意: 在删除某个分支的时候,肯定不能处在删除的谁人分支,我们一样平常选择切换到主分支后举行删除
合并分支
首先切换到主分支,然后举行合并
git checkout master
git merge dev
合并过程中冲突的办理
两个分支操作同一个文件的时候,git merge会出现题目(这是git最常见的题目之一)
当出现两个分支冲突的时候,我们必要手动在合并进入的分支中处理,并且再举行一次提交(这一步非常紧张)
https://i-blog.csdnimg.cn/direct/dfc05ebbe54f4038bf706d7b61c566d1.png
fast_forward题目
什么事fast_forward题目
https://i-blog.csdnimg.cn/direct/127f652167bf4fbeac6963df0c7cae96.png
根据图形我们可以看出,如果merge分支改变后,master分支没有任何变化,在merge的时候就不会出现冲突,这个时候,我们的merge操作后git的日记会将这里的branch + merge操作记录成一次提交,也就是忽略了我们这里创建分支的记录,
这在我们以后项目溯源(也就项目出题目了,追责的时候是不合理的,由于找不到是谁的题目)
总结就是看不出来到底是merge进来的,还是master直接提交的
那么我们怎样使用非fast_forward(nff)模式呢?
git提供了一个选项叫做–no-ff(表示不使用fast_forward模式)
总结: git merge --no-ff -m “通过nff举行merge” dev,这个操作就是为了我们在追查历史代码的时候可以大概找到题目,克制扯皮
日常举行分支管理的战略
[*] dev:开发人员所在的分支,有bug,测开工程师举行测试。
[*] master: 线上跑的代码,用户的代码。
创建标签
[*] git tag:列出所有标签。
[*] git tag <标署名>:在当前提交上创建标签。
[*] git tag -a <标署名> -m “标签信息”:创建带解释的标签。
[*] git push <远程仓库名> <标署名>:将标签推送到远程仓库。
[*] git push <远程仓库名> --tags:将所有标签推送到远程仓库。
日记
[*] 直接看日记: git loghttps://i-blog.csdnimg.cn/direct/6223511d86e948ec87bdb1da66c3a71a.png
[*] 优雅的看日记: git log --pretty=onelinehttps://i-blog.csdnimg.cn/direct/bc9d6dc0b485429da24ec20f0cf6912c.png
[*] 通过图形化:git log --graph
https://i-blog.csdnimg.cn/direct/38794069a1d240c5b0e0e2c1db7dcc1b.png
怎样将远程仓库和本地毗连起来呢
[*]HTTPS: 可以直接拷贝仓库中的
[*]ssh: 平时我不发起,由于ssh必要你自己在本地创建.ssh公钥,然后添加到gitee上面,我不发起。
怎样将本地分支推送到远程服务器
git branch -vv :可以直接看你本地的分支和远程的毗连情况,如果没有毗连,体系会给你提供毗连的下令。
git push 【本地分支名】:【远程分支名】
如果已经毗连乐成了,也可以直接省略,直接git push即可
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]