服务器: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. Java进阶专题(十六) 数据结构与算法的应用(上)

    前言 ​ 学习算法,我们不需要死记硬背那些冗长复杂的背景知识.底层原理.指令语法--需要做的是领悟算法思想.理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案.相比编程领域的其他技术 ...

  2. ubuntu 17.10 安装QQ

    折腾一大堆 看报错信息 正在选中未选择的软件包 wine-qqintl:i386.(正在读取数据库 ... 系统当前共安装有 185429 个文件和目录.)正准备解包 wine-qqintl_0.1. ...

  3. OpenCV计算机视觉学习(11)——图像空间几何变换(图像缩放,图像旋转,图像翻转,图像平移,仿射变换,镜像变换)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 图像 ...

  4. python_登陆验证文件上传下载_socket

    client.py import os import sys import json import struct import socket # 下载--接收文件 def download(sk): ...

  5. nginx&http 第三章 ngx http ngx_http_process_request_line读取和处理HTTP头部的行

    在 ngx_http_wait_request_handler 的最后调用了 ngx_http_process_request_line 函数用来处理和解析这次请求的全文 在读事件被触发时,内核套接字 ...

  6. leetcode Reverse Nodes in k-Group翻转链表K个一组

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k  ...

  7. new与malloc的10点区别(转)

    1. 申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存.自由存储区是C++基于new操作符的一个抽象概念,凡是通过ne ...

  8. solr 笔记

    1.sorl其实是对存储的内容,根据相应的域和域的类型先分词,停顿,过滤(大小写转换)等等;然后建立多级索引.对搜索条件也是根据相应的域和域的类型进行分词,停顿,同义词,过滤(大小写转换)等等;然后建 ...

  9. 三叶草极客大挑战2020 部分题目Writeup

    三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...

  10. webug第十六关:明天双十一

    ---恢复内容开始--- 第十六关:明天双十一 不说了...只能看着源码做出来 ---恢复内容结束---