技术交流QQ群:1027579432,欢迎你的加入!

欢迎关注我的微信公众号:CurryCoder的程序人生

1.创建与合并分支

  • (1).从master分支创建dev分支,并切换到dev分支

    git checkout master
    git checkout -b dev
    
  • 其中,git checkout -b dev等价于

    git branck dev
    git checkout dev
    
  • (2).查看本地当前的分支,分支前面带*表示当前分支,剩下的分支表示本地有的其他分支

    git branch
    
  • (3).查看远程全部的分支,白色的表示本地有的,红色的表示本地没有的,仅在远程存在。

    git branch -a
    
  • (4).修改代码,提交代码(当前的操作是在dev分支上进行的)

    git add hello_git.txt
    git commit -m '提交文件hello_git.txt'
    
  • (5).分支合并(将dev合并到master分支)

    git checkout master
    git merge dev
    
  • (6).合并完成后,删除dev分支(删除dev分支时,注意我们当前所在的分支不能是dev分支)

    git branch -d dev
    
  • (7).删除后,查看分支(此时看不到dev分支啦)

    git branch
    
  • (8).总结:工作中经常从master分支创建新的分支,具体操作如下:

    git checkout master
    git checkout -b feature01  // 从master分支创建feature01分支
    git push origin feature01
    git add ..
    git commit -m 'xxx文件的提交说明'
    git push origin feature01
    
  • 注意:将本地分支branch1推送到远端的branch2操作步骤:

    git push origin branch1:branch2
    
  • (9).删除分支

    git branch -D feature01  // 本地强制删除分支feature01
    git push origin :feature01 // 推送到远端
    

2.解决冲突

  • (1).发生冲突的文件

    <<<<<<< HEADCreating a new branch is quick & simple.=======Creating a new branch is quick AND simple.>>>>>>> feature1
    
  • 其中,git使用 <<<<<<<,=======,>>>>>>>标记文件中自己和别人产生冲突的部分。在 <<<<<<<,=之间为自己的代码;=,>>>>>>>之间为别人的代码。如果保留自己的代码,将别人的代码删掉即可。

  • (2).冲突解决后提交

    git status
    git add ***
    git commit -m "fix conflict"
    git push origin 分支名
    

3.Bug分支

  • (1).储藏更改:将当前更改的代码储藏起来,等以后恢复使用

    git stash
    
  • (2).恢复储藏的代码

    git stash pop
    // 恢复的同时把stash内容删掉
    
  • 或者,先通过git stash list查看所有的stash,然后恢复指定版本的代码

    // 通过git stash list,查看本地所有的stash,如果我要恢复第一个就执行:
    git stash apply stash@{0}git stash apply  // 恢复stash,但是stash内容并不删除git stash drop // 在上面操作的基础上,以此来删除stash注:git stash list // 查看全部的stash列表
    
  • (3).将stash空间清空

    git stash clear
    
  • (4).git stash pop 和 git stash apply 区别

    • git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除
    • git stash apply stash@{id} 命令则会继续保存stash id

4.版本回退

  • (1).回退至上一个版本

    git reset --hard HEAD
    
  • (2).回退至指定版本

    git reset --hard 版本号
    
  • (3).查看历史版本号(本地commit)

    git reflog
    
  • (4).查看各版本号及信息(所有的commit:本地commit + 其他同事的commit)

    git log
    

5.撤销修改

  • (1).撤销修改

    git checkout -- hello_git.txt
    

    有以下两种情况

    a. 还没有执行 git add 操作,执行上面的操作后,会恢复到和版本库中一模一样的版本状态。

    b.执行了git add ,还没执行 git commit ,再执行上面的操作后,会恢复到git add 结束后的状态

    注意:一旦执行了git commit -m “*”,就不能再使用上面的命令回退

  • (2).撤销新建文件

    比如新建一个hello.html页面,并未执行git add ,即没有被git追踪,此时如果你想撤销新建动作,可执行:

    git clean -f ../hello.html
    
  • (3).撤销新建文件夹

    例如,新建一个文件夹"demo",并未执行git add ,即没有被git追踪,此时如果你想撤销新建动作,可执行:

    git clean -df ./demo
    

6.对已push版本进行回退

  • (1).第一步

    git reset --hard 版本号 // 本地回退到指定的版本
    
  • (2).第二步

    git push -f origin dev  // 将远程的也回退到指定版本
    

7.本地同步远程删除的分支

git fetch origin -p  // 用来清除已经没有远程信息的分支,这样git branch -a 就不会拉取远程已经删除的分支了

8.删除未与远程分支对应的本地分支

  • 从gitlab上看不到的分支在本地可以通过git branch -a 查到,删掉没有与远程分支对应的本地分支

    git fetch -p
    

9.查看远程库与本地分支的信息

git remote show origin

10.标签管理

  • (1).给当前分支最新commit打标签tag

    git tag v1.0.0
    
  • (2).例如现在周五,要给周一某个commit打标签,应该执行以下步骤

    • (a).查看log日志,找到相应的commit版本号

      git log --pretty=oneline --abbrev-commit
      // 显示如下commit,比如我想在 "34372b05"这个commit打标签
      44d2e20b fix bug
      34372b05 fix bug
      29554931 fix bug
      
    • (b).给指定的commit打标签

      git tag v1.0.0 34372b05
      
    • ©.创建的标签只存在本地,推至远程

      git push origin v1.0.0
      
    • (d).一次性推送未推至远程的本地标签

      git push origin --tags
      
    • (e).查询所有标签

      git tag
      
    • (f).查询标签详细信息

      git show v1.0.0
      
    • (g).删除本地标签

      git tag -d v1.0.0
      
    • (h).删除远程标签

      // 先从本地删除
      git tag -d v1.0.0// 然后从远程删除
      git push origin :refs/tags/v1.0.0
      // 最后可以在gitlab上查看是否真正的删除了标签
      
  • (3).创建带有说明的标签,用-a指定标签名,-m指定说明文字

    // git tag -a 版本号 -m 说明信息 commit版本号
    git tag -a v1.0.0 -m 'version 1.0.0 released' 34372b05(commit版本号)
    // 查看标签详细信息
    git show v1.0.0
    

11.参考资料

  • [1] https://mp.weixin.qq.com/s/swnwBiuyVmhs5iPqv3H6BQ
  • [2] https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000

一杯茶的功夫,掌握Git常用命令(转载)相关推荐

  1. Git 常用命令总结,掌握这些,轻松驾驭版本管理

    Git 常用命令总结,掌握这些,轻松驾驭版本管理 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  2. 【转载】Git 常用命令大全

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

  3. Git 常用命令集锦

    文档已储存在 GitHub,这里不再更新校正,请原谅. 远程仓库相关命令 克隆远程仓库:git clone git://github.com/jquery/jquery.git 查看远程仓库:git ...

  4. Git 常用命令速查表(图文+表格)

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

  5. git常用命令,分支操作,子模块

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) 二. Git 常用 ...

  6. Git常用命令和Git团队使用规范指南

    1. 前言 在2005年的某一天,Linux之父Linus Torvalds 发布了他的又一个里程碑作品--Git.它的出现改变了软件开发流程,大大地提高了开发流畅度,直到现在仍十分流行,完全没有衰退 ...

  7. Java程序员时刻铭记的Git常用命令

    今天动力节点Java学院为大家整理了Java架构师必备Git常用命令清单 工程下载.分支的增删查改 工程下载: clone 远程工程:git clone https://XXXX.git fetch ...

  8. Git常用命令备忘(一) 转载

    Git配置 git config --global user.name "robbin" git config --global user.email "fankai@g ...

  9. git常用命令_10、Git常用命令

    Git常用命令 Git作为我们最常用的版本控制工具,多了解并熟悉一些命令,将能节省很多时间 关于git,首先需要了解几个名词,如下: Workspace:工作区 Index / Stage:暂存区 R ...

最新文章

  1. netsh interface portproxy 转发不生效_SecureCRT远程端口转发不生效的解决方法
  2. 华为发布岳云鹏手机_刚刚,华为发布鸿蒙2.0!手机可用!
  3. Kadane's algorithm学习
  4. PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用
  5. android 自定义控件linearlayout,自定义控件(瀑布流,LinearLayout)
  6. js的跨域问题和解决办法
  7. 难怪各家抢滩物联网!真实原因竟是……
  8. 【转】CentOS系统操作下安装相关各种软件
  9. linux下驱动程序数字签名,64位Windows操作系统为驱动程序添加测试数字签名
  10. RHadoop协同过滤算法
  11. sklearn 手写体识别
  12. python实现读取并显示图片的两种方法
  13. 详解如何在Sbo Add-on开发中使用Folder控件
  14. 单纯同调与奇异同调 习题
  15. 北邮计算机学院复试分数线,2018年北京邮电大学复试分数线
  16. win10 pycharm安装使用 MySQLdb
  17. RHEL 5.5 KVM 网卡 bridge设置
  18. 用正则表达式实现千分位分隔符
  19. SpringBoot日志文件
  20. 计算机无法使用光驱启动,光驱启动怎么设置?电脑设置光驱启动开机的方法

热门文章

  1. 知识点033-利用expect和shell分发密钥之后用ansible统计哪些没有分发成功
  2. python中lambda使用
  3. linux手动释放内存的方法
  4. 优点和阵列的缺点,并且一个链表
  5. MotionEvent的getX(),getY()与getRawX(),getRawY()区别
  6. MVC - 17.OA项目
  7. PreTranslateMessage作用和用法
  8. MySQL优化篇:SQL优化流程
  9. 京东某程序员哀叹:在大厂快待废了,出去面试问自己kafka,竟然全忘了!
  10. 核弹级漏洞!我把log4j扒给你看!