【步伐员小技巧】git的常用操作(图解)

打印 上一主题 下一主题

主题 1835|帖子 1835|积分 5505

日常中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”

加上–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
  1. git reset --mixed(可以) HEAD file1.txt  (将file1.txt回退到当前commit的版本)
  2. 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
创建后的状态

切换分支

git checkout [分支名]
好比:git checkout dev

删除分支

git branch -d(delete) 分支的名称

注意: 在删除某个分支的时候,肯定不能处在删除的谁人分支,我们一样平常选择切换到主分支后举行删除
合并分支

首先切换到主分支,然后举行合并
git checkout master
git merge dev
合并过程中冲突的办理

两个分支操作同一个文件的时候,git merge会出现题目(这是git最常见的题目之一)
当出现两个分支冲突的时候,我们必要手动在合并进入的分支中处理,并且再举行一次提交(这一步非常紧张)

fast_forward题目

什么事fast_forward题目

根据图形我们可以看出,如果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 log

  • 优雅的看日记: git log --pretty=oneline

  • 通过图形化:git log --graph

怎样将远程仓库和本地毗连起来呢



  • HTTPS: 可以直接拷贝仓库中的
  • ssh: 平时我不发起,由于ssh必要你自己在本地创建.ssh公钥,然后添加到gitee上面,我不发起。
怎样将本地分支推送到远程服务器

git branch -vv :可以直接看你本地的分支和远程的毗连情况,如果没有毗连,体系会给你提供毗连的下令。
git push 【本地分支名】:【远程分支名】
如果已经毗连乐成了,也可以直接省略,直接git push即可

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表