服务器:Ubuntu

使用git前准备工作:

  下载git之前先更新:  apt-get update

  安装git:   apt-get install git

  创建本地仓库:  mkdir test

  git初始化:     cd test  git init  

  生成公钥和私钥:  ssh-keyge

  将公钥添加到github里。

git的使用

  分支操作: 

    克隆仓库:git clone   

    创建本地分支:git branch 分支名

    创建本地分支并切换到分支:git checkout -b 分支名

    根据远程仓库创建本地分支:git branch 分支名 origin/远程分支名

    切换分支:git checkout 分支名

    查看所有分支:git branch

    删除分支:git checkout -d 分支名

    拉取远程分支代码:git pull

    在当前分支合并XX分支:git merge 分支名

    将本地分支推送到远程:git push origin 远程分支名

  版本管理: 

    查看状态:git status 

    添加到暂存区:git add 文件/文件夹 

    放弃修改操作:git checkout --文件名 

    添加到本地分支:git commit "备注信息"

    查看历史版本:git log (想看简洁版的带上参数,--pretty=online)

    回退历史版本:git reset 版本号

    查看历史操作:git reflog

    查看文件的修改:git diff 文件名

    删除文件:git rm 文件名

git运用场景

  场景一:

    当你正在写代码的时候突然线上服务器出现了个bug,这时候你不得不赶快处理线上的bug。一般我们会将正在写的代码,git add, git commit 一下,再切换到bug分支解决bug。解决完成以后git commit bug分支的代码。在切换回来。除了这样的操作,我们还有一种可选方案:

    1.正在写东西,突然有bug需要解决。

      git stash    #将当前的代码放在一个新的临时区/暂存区。以免带入其他分支。

      git checkout bug    #切换到bug分支

      vim views.py       #修改代码,解决bug

      git add views.py    #添加修改内容到暂存区

      git commit "change_bug"  #提交代码到本地仓库

      git checkout master   #切换都master分支

      git merge bug      #将bug分支的修改后的代码合并到master上

      git push origin master  #将本地master分支的代码推到远程

      git checkout dev    #切换到修改代码前的分支(原来的代码在dev分支上写的)

      git status        #查看dev分支的状态,发现原来对代码的修改没有了(写了半天,没有保存,心里很慌有没有啊。。。)

      more readme       #查看更久远的操作,发现依然没有。(这是真的有点慌,甚至有点小绝望啊)   

      git stash list        #查看临时保存的文件列表(我擦,找到了,过山车般的体验)

      git stash apply      #恢复到上次保存的位置(终于找到你,还好我没放弃)

      git status        #查看状态,发现一切和好如初(这个世界完美了。可以继续愉快的写代码了)

    git stash的一些其他操作:

      git stash drop     #删除最久的那个使用了git stash 保存的临时状态

      git stash apply stash@{0}    #恢复到指定的那个临时状态

      git stash pop    #恢复并删除上一个临时状态

      (ps: 1.git stash apply 恢复后,stash内容并不会删除,需要使用git stash drop 来删除

          2.另一种方式是使用git stash pop, 删除的同时把stash的内容也删除了)

  场景二:

    多人合作开发,最后把所有人的代码合并到一起,然后测试并推到master中:

      git add *    git commit "success"      #将完成的代码添加到本地仓库,等待合并

      checkout maste    #切换到本地master分支

      git pull         #将远程master分支的代码下载到本地

      git merge dev     #将本地dev中开发的代码合并到master中(这时候发现有冲突。自己的代码和master里最新的代码有不一致的地方,不要慌,我和别人同时修改了原文代码导致的这种问题。下面需要进行手动合并。)

      git status         #查看文件状态,看都有哪些文件有冲突

      git diff views.py    #查看文件冲突的具体情况

      vim views.py      #手动修改文件

      git add views.py  git commit "change_merge"  #添加到本地仓库

      git push origin master    #推送到远程master分支

git全流程的更多相关文章

  1. 使用git整体流程

    一.git提交代码走meger请求的整体流程 工作中使用git推代码时,如果走merge请求,那么也就是说拉代码时拉公共代码库的代码,但是提交时需要先提交到自己的代码库,然后在gitlab上提交mer ...

  2. Git全解析之用起来先

    文章目录 1. Git全解析之用起来先 1.1. 先安装Git环境 1.2. 配置 1.3. 简单了解Git 1.3.1. Git对象模型 SHA 1.3.2. Git目录与工作目录 1.4. 可以开 ...

  3. Git全解析之远程仓库交互

    文章目录 1. Git全解析之远程仓库交互 1.1. 中央仓库的概念 1.2. 本地分支与远程分支 1.3. pull与fetch 1.4. 关于捐赠 Git全解析之远程仓库交互 中央仓库的概念 虽然 ...

  4. gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程

    什么是插件 Gitbook 插件是扩展 GitBook 功能(电子书和网站)的最佳方式. 只要是 Gitbook 默认没有提供的功能,基于插件机制都可以自行扩展,是插件让 Gitbook 变得更加强大 ...

  5. 基于Jenkins的开发测试全流程持续集成实践

    今年一直在公司实践CI,本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续还会深入实践和引入Kubernetes进行容 ...

  6. 如何使用 CODING 实践 DevOps 全流程

    你好,欢迎使用 CODING!这份最佳实践将帮助你通过 CODING 研发管理系统来更好地实践 DevOps 流程. DevOps 的本质是打破各个部门之间的隔阂,打通企业的前中后台,推进跨部门协作. ...

  7. git 提交流程

    Git提交流程: 1. Menu remote > (拉取)fetch 2. 重新扫描(rescan) 3. 缓存改动(stage change) 4. 写注释后提交(commit) 5. Me ...

  8. github Pull Request合入全流程介绍

    图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...

  9. git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用

    今日内容概要 git详情 git工作流程 git常用命令 过滤文件 分支操作 git远程仓库使用 可参照:https://www.cnblogs.com/liuqingzheng/p/15328319 ...

随机推荐

  1. linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)

    话不多说开始了! 安装 安装就依据菜鸟教程的进行安装 传送门 => https://www.runoob.com/mongodb/mongodb-linux-install.html 好啦!现在 ...

  2. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  3. Hopfield Network 霍普菲尔德网络入门

    简介 Hopfield Network (霍普菲尔德网络),是 Hopfield 在1982年提出的一种基于能量的模型,发表的文章是 Neural networks and physical syst ...

  4. ARM的三级流水线结构

    看到汇编中很多关于程序返回与中断返回时处理地址都很特别,仔细想想原来是流水线作用的效果.所以,决定总结学习下ARM流水线. ARM7处理器采用3级流水线来增加处理器指令流的速度,能提供0.9MIPS/ ...

  5. Spider--补充--Re模块_1

    # @ Author : Collin_PXY # 正则表达式: import re # 1,分步写法: # 1)rule.search(string) pattern='各小区' rule=re.c ...

  6. [转自王垠]完全用GNU/Linux工作,摈弃Windows低效率的工作方式

    ZT (a qinghua student's article) 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作. GNU/Linux 不是每个人都想用的.如果 ...

  7. Python中的matplotlib xticks

    文章来自 Claroja的CSDN博客,仅做搬运.原文链接 在matplotlib中ticks表示的是刻度,而刻度有两层意思,一个是刻标(locs),一个是刻度标签(tick labels).在作图时 ...

  8. 测试:OGG初始化同步表,源端抽取进程scn<源端事务的start_scn时,这个变化是否会同步到目标库中?

    一.测试目标 疑问,OGG初始化同步表,源端抽取进程开始抽取的scn<源端事务的start_scn时,这个变化是否会同步到目标库中? 二.实验测试 如下进行测试! session 1 SQL&g ...

  9. 通过一道CTF学习HTTP协议请求走私

    HTTP请求走私 HTTP请求走私 HTTP请求走私是针对于服务端处理一个或者多个接收http请求序列的方式,进行绕过安全机制,实施未授权访问一种攻击手段,获取敏感信息,并直接危害其他用户. 请求走私 ...

  10. 面试必看!凭借着这份 MySQL 高频面试题,我拿到了京东,字节的offer!

    前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面 ...