工欲善其事,必先利其器。前言Git的本质git是一个版本控制工具,一切以版本控制为中心,版本即每一次commit,其实分支是指向commit的,HEAD也是指向某一次提交的,HEAD其实指向的就是当前分支的最近一次commit,可以看到master分支相对当前分支就落后了一个版本。

通过上面的理解我们简单举一个例子,git merge 命令,比如当前我们在master分支,将deploy分支合并到当前所在的分支master,如果当前分支master在创建deploy分支之后,没有进行新的提交,则直接就会将master的分支指向deploy分支所在的commit,这种现象叫Fast-forward,如果master中间提交过,则会将分支内容进行合并,并重新创建一个commit。我们使用reset命令的时候就会使HEAD和当前分支指向的版本移动到指定版本,git reset的三种模式,强烈建议阅读下面这篇文章:https://www.jianshu.com/p/c2ec5f06cf1a,通俗易懂。

代码写错分支了怎么办?

使用reset命令

比如我的代码应该写在wzy分支上,但是我写到了xym这个分支,并且还提交了,怎么把代码移到wzy分支,并且撤回提交?

1、(xym)git reset HEAD^

2、(xym)git stash

3、切换到wzy

4、(wzy)git stash pop

5、(wzy)commit

这样所有的版本提交记录都不留痕迹,首先第一步会把差异放到工作区,然后git stash放到暂存栈,这个时候工作目录就是干净的,可以用git status看一下,然后切到wzy分支,git stash pop 从暂存栈中拿出来,之后再把代码提交。最后就是提交xym分支的代码,如果远程也推送了怎么办?就用下面的方法。

如何撤销远程的提交?

使用--force参数

某次修改已经本地提交了,push到远程了,怎么撤销本地和远程的提交

首先还是版本回退,git reset HEAD^,然后,这样你之前改动的内容就会到工作目录中,你可以直接不提交工作目录的改动直接恢复成原来的样子,然后git push --force origin xym.强行让远程和你本地版本一致,你就会发现那次提交消失了.

git reset有三种模式,默认--mixed会把回滚的版本,和当前版本的差异保存到工作目录,--soft会把和当前版本的差异保存到暂存区,--hard会直接覆盖工作目录、暂存区、仓库,保证代码是一致的.HEAD是最近一次提交,HEAD^是最近的上一次.

结束语本期内容先到这里,后面会给大家介绍更多git实用技巧,感谢许愿猫校对内容!我们下期见。

git 怎么拉去分支代码_Git使用技巧1——代码写错分支了怎么办?相关推荐

  1. git 文件全部标红_git冲突解决,代码冲突、合并冲突。【IDEA版本】

    其实所谓的冲突就是同一个文件同时被多个人修改了,导致git服务不知道要保存谁的. 一.同一个版本冲突解决 1-1.当我们正常拉取代码的时候,结果是这样的. 1-2.如果有冲突的时候,将是这样的 解决冲 ...

  2. 回滚master代码_Git之master主干代码回滚

    本节概览:通过git revert来实现线主干代码的回滚.如下命令 对于 merge类型的commit对象,还需要"-m"参数 git revert -m 1  commit-id ...

  3. git怎么操作会丢失自己的代码_git找回丢失的代码

    多人开发时找回丢失的代码 1.先保证所有分支的代码都已经提交并拉取到最新状态. 2.最重要的是需要找到最近一条自己代码还存在的记录,然后复制到最近的更早一条的提交记录的id,比如e36e9e76da1 ...

  4. git分支合并指定代码_git的几种实用操作(合并代码与暂存复原代码)

    总述 git工具也用了很久,自己也写了几篇使用教程,今天继续给大家分享一些我工作中使用过的git操作. 1.git合并远程仓库的代码 2.git stash保存当前的修改 这两种情况大家应该都使用比较 ...

  5. git 怎么拉去分支代码_拉取github指定分支上的代码

    拉取github指定分支上的代码 方法[推荐] #[0]git拉取远程代码 git clone https://xxx.git #[1]git拉取远程指定分支下代码(-b 分支名称) git clon ...

  6. git如何合并指定文件内容_git小技巧--如何从其他分支merge个别文件或文件夹

    在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发. 创建分支 功能分为2个分支,分别为A.B. A上面有个列表页功能 B上面有个详情 ...

  7. git 合并代码_git的几种实用操作(合并代码与暂存复原代码)

    总述 git工具也用了很久,自己也写了几篇使用教程,今天继续给大家分享一些我工作中使用过的git操作. 1.git合并远程仓库的代码 2.git stash保存当前的修改 这两种情况大家应该都使用比较 ...

  8. git id 切分支 按_Git分支本地操作详解

    原文链接:http://www.jianshu.com/p/c05231e6a65a 引言 在上一节中我们对Git的常用本地操作的命令进行详解,而本节要讲解的是Git的分支, 在讲解之前补充两点概念性 ...

  9. git gui怎么拉取项目代码_Git可视化极简易教程 —— Git GUI使用方法

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

最新文章

  1. 用计算机能改装成万用表吗,用旧手机电池修改万用表
  2. kali 安装java jdk
  3. server正式的环境性能测试nginx-php 指着寻求突破的表现
  4. [ARM-assembly]-ARMV9-A64指令汇总-指令速查
  5. 模式识别与机器学习课程笔记——决策树和贝叶斯估计
  6. EBS业务学习之应收管理
  7. JS原生父子页面操作
  8. 红米Note 7 Pro在印度首销迅速售罄
  9. mysql 完整性概念_mysql基础知识
  10. 二本 计算机专业2017分数线,2017体育二本分数线(2017体育生高考录取分数线)
  11. 防止图片盗链和资源恶意下载
  12. linux tintin 中文,linux下的mud客户端ytin和tintin++
  13. 微信公众号多域名回调系统
  14. Apache DolphinScheduler征稿 — 小Demo轻松入门DolphinSchedule大数据调度工具
  15. java-练习题-小学算术题
  16. JS生成二维码(兼容各种浏览器及中文)
  17. v7000更换电池步骤_[原创]IBM V7000 SVC更换已经告警的UPS电池详细步骤
  18. 微信公众号查券返利机器人搭建教程
  19. unity的战争迷雾插件
  20. Swarm管理Docker集群

热门文章

  1. MacOS中安装Consul(启动及关闭)
  2. Spring Security 认证执行流程
  3. Android 集成高德地图——当前定位,添加图标,画路线,设置显示中心位置,比例,地图刷新位置监听,判断GPS开启,去打开GPS
  4. python utc 时间
  5. javascript各种事件
  6. mysql my.ini位置错误_解决mysql导入数据量很大导致失败及查找my.ini 位置(my.ini)在哪...
  7. MySQL数据库事务中的行级锁,表级锁,页级锁
  8. pads导出坐标文件html,【教程】PADS如何导出SMT贴片机用的坐标文件
  9. Linux给Java程序设置端口_扫描服务端口的Java程序
  10. 从0实现三层神经网络