程序员必备 —— Git

  • 1. Git 介绍
  • 2. Git 实战
    • 2.1 初识(初始化及简单使用)
    • 2.2 回滚
    • 2.3 修复线上紧急 bug 思路
    • 2.4 分布式开发
    • 2.5 rebase 的应用
    • 2.6 命令总结

1. Git 介绍

Git 是一个开源的分布式版本控制系统。

2. Git 实战

2.1 初识(初始化及简单使用)

  • 进入待管理的目录
  • 执行初始化指令:git init
  • 管理指定文件:
    git add 文件名
    git add .
    
  • 个人信息配置(仅需配置一次)
    git config --global user.email "your email address"
    git config --global user.name "your name"
    
  • 生产版本:git commit -m '描述信息'

git 整体工作流程如下图:

2.2 回滚

  • 回滚至之前的版本:

    git log
    git reset --hard 版本号
    
  • 回滚至之后的版本:
    git reflog
    git reset --hard 版本号
    

2.3 修复线上紧急 bug 思路

  • 使用 git stash 将当前分支未提交的代码保存起来 git stash save "摘要标签"
  • 开启缺陷修复分支 git checkout -b "bugfix"
  • 修复完合并到 master 分支,需要先切换到待合并到的分支,然后执行 git merge 分支名,比如想把 bugfix 分支合并到 master 分支
    git checkout master
    git merge bugfix
    
  • 合并时可能产生冲突,需要手动解决冲突
  • 手动删除 bugfix 分支 git branch -d 待删除的分支名称
  • 利用 git stash pop 命令将代码恢复,继续进行修复 bug 之前的开发工作。

2.4 分布式开发

  1. 给远程仓库起别名

    git remote add 远程仓库名称 远程仓库地址
    
  2. 向远程推送代码
    git push -u 远程仓库名称 分支
    
  3. 克隆远程仓库代码
    git clone 远程仓库地址
    
  4. 在家/公司继续写代码
# 1. 切换到 dev 分支
git checkout dev
# 2. 拉取代码
git pull origin dev
# 3. 继续开发# 4. 提交代码
git add .
git commit -m 'xxx'
git push origin dev
  1. 开发完成要上线
# 1. 将 dev 分支合并到 master, 进行上线
git checkout master
git merge dev
git push origin master# 2. 把 dev 分支也推送到远程
git checkout dev
git merge master
git push origin dev

2.5 rebase 的应用

  1. 把多次提交(未 push 到远程仓库的 commit)合并为一个提交

    git rebase -i HEAD~3 (把从 HEAD 开始的最近 3 条提交记录合并)
    

2.6 命令总结

  • 添加远程连接(别名):git remote add origin 地址
  • 推送代码:git push origin dev
  • 下载代码:git clone 地址
  • 拉取代码:git pull origin dev 等价于 git fetch origin + git merge origin/dev
  • 保持代码提交整洁(变基):git rebase 分支
  • 记录图形展示:git log --graph --pretty=format:"%h %s"

程序员必备 —— Git相关推荐

  1. 程序员必备git客户端PortableGit-2.34.0-64-bit.7z.exe

    支持windows各个版本,绿色免安装,程序员必备,国内大公司必用. PortableGit-2.34.0-64-bit.7z.exe - 文件下载http://kaka263.com/ft-9446 ...

  2. 程序员必备 Git 分支开发规范指南

    Git 是目前最流行的源代码管理工具.为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 分支管理 分支命名 master 分支 master 为主分支 ...

  3. 程序员必备的20个软件

    此文首发于我的个人博客:windows-程序员必备的20个软件 - zhang0peter的个人博客 我自己基本上每半年左右就要重装一次win10系统,所以我在这么多次的重装系统的过程中总结了如下这些 ...

  4. git 小乌龟 更新分支_时光机--git--现代程序员必备的星舰

    编程错一个代码.文字就乱套了,并且文档特别多之后,你会忘记哪里做了改动,后来有了svn,svn碰到了很多问题,后来有了git. 这都是时光机,git已经全面取代svn. git是现代程序员必备的星舰, ...

  5. 程序员必备小知识: 管理代码分支(git merge)

    文章目录 引言 I 管理代码分支 1.1 分支合并到主干并打tag 1.2 更新主干代码到分支 1.3 其他必备小知识 II 常用小技能 2.1 Git用户名邮箱设置 2.2 git stash se ...

  6. 十大PHP程序员必备工具

    十大PHP程序员必备工具 1.Notepad++ 总结来说就是小而精,7.4版本的软件包只有2.9M,比一般的IDE小数十倍,但是Notepad++的功能确是很全面的,代码高亮,语法折叠,宏功能,内置 ...

  7. 后端程序员必备的 Linux 基础知识

    后端程序员必备的 Linux 基础知识 原文来自github stars>63k的项目JavaGuide,欢迎小伙伴去支持原作者 一 从认识操作系统开始 1.1 操作系统简介 1.2 操作系统简 ...

  8. 程序员必备的6款工具软件,炒鸡实用!

    都说程序员的电脑上有各种各样的软件工具.编辑器.插件等等,不同岗位的程序员使用的工具也不同. 今天就给大家分享6款程序员必备的工具软件,看看有没有你常用的! 6款程序员必备工具软件 1 oh-my-z ...

  9. 11个程序员必备简捷开发辅助工具

    程序员必备简捷开发辅助工具总结 写在前面: 工欲善其事必先利其器,拥有简捷的开发辅助工具能大大提高我们程序猿的开发效率.Melo刚到学校就给大家总结了一些常用的辅助开发的工具,希望大家能喜欢,闲话不多 ...

最新文章

  1. mysql5.7主从搭建
  2. 马腾宇的AI学术历程:做科研要考虑长期的影响力
  3. 0801 am使用tp框架对数据库增删改查
  4. Mybatis使用statementType=STATEMENT实现动态传入表名或字段名
  5. vue中集合取第一个_快速学习Vue框架(知识点集合)
  6. java中workFlowEvent_防止线程在java中重复处理
  7. 微信小程序srt_微信小程序微商城(八):缓存实现商品购物车功能
  8. Error: Could not open connection to jdbc:hive2://master:10000: java.net.ConnectException: Connection
  9. PTP(IEEE1588),TSN时间同步方法
  10. windows 系统 system 进程占用80端口
  11. 在Ubuntu上安装KDE(Kubuntu)
  12. 纯干货!盘点各行业程序员必备技能
  13. mysql time over_mysql启动失败错误mysqld.service holdoff time over, scheduling restart.
  14. 网站被黑 怎么检测代码含有后门
  15. ZZULIOJ.1102: 火车票退票费计算(函数专题)
  16. 前端技术猜想-2018
  17. 装linux系统的工具箱,PE,Dos工具箱,自动安装linux的U盘制作
  18. AI × OCR:腾讯文档表格图像识别技术实践
  19. 一文梳理 | 电力企业网络安全管理及等级保护工作重点
  20. gaussdb200 数据导入

热门文章

  1. 全球与中国聚 (3,4-亚乙基二氧噻吩) (PEDOT)市场“十四五”规划及远景目标的建议报告2022-2028年
  2. 东辉职校计算机专业录取分数线,2016年上海东辉职校录取分数
  3. 艾美捷RPMI-1640培养基含L-谷氨酰胺的功能和研究
  4. ZZULIOJ-1075,聚餐人数统计(Python)
  5. 小程序开发特辑—小程序申请及开发环境搭建
  6. 替代DRV8825的打印机/扫描仪驱动芯片TMI8420
  7. STM32和ROS串口通信常见问题汇总答疑
  8. php判断数组的值是否为空,PHP判断数组(多维数组)值是否为空
  9. [免费专栏] Android安全之检测APK中调试代码是否暴露敏感信息
  10. Redis三种启动方式(Linux)