git全流程
服务器: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全流程的更多相关文章
- 使用git整体流程
一.git提交代码走meger请求的整体流程 工作中使用git推代码时,如果走merge请求,那么也就是说拉代码时拉公共代码库的代码,但是提交时需要先提交到自己的代码库,然后在gitlab上提交mer ...
- Git全解析之用起来先
文章目录 1. Git全解析之用起来先 1.1. 先安装Git环境 1.2. 配置 1.3. 简单了解Git 1.3.1. Git对象模型 SHA 1.3.2. Git目录与工作目录 1.4. 可以开 ...
- Git全解析之远程仓库交互
文章目录 1. Git全解析之远程仓库交互 1.1. 中央仓库的概念 1.2. 本地分支与远程分支 1.3. pull与fetch 1.4. 关于捐赠 Git全解析之远程仓库交互 中央仓库的概念 虽然 ...
- gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程
什么是插件 Gitbook 插件是扩展 GitBook 功能(电子书和网站)的最佳方式. 只要是 Gitbook 默认没有提供的功能,基于插件机制都可以自行扩展,是插件让 Gitbook 变得更加强大 ...
- 基于Jenkins的开发测试全流程持续集成实践
今年一直在公司实践CI,本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续还会深入实践和引入Kubernetes进行容 ...
- 如何使用 CODING 实践 DevOps 全流程
你好,欢迎使用 CODING!这份最佳实践将帮助你通过 CODING 研发管理系统来更好地实践 DevOps 流程. DevOps 的本质是打破各个部门之间的隔阂,打通企业的前中后台,推进跨部门协作. ...
- git 提交流程
Git提交流程: 1. Menu remote > (拉取)fetch 2. 重新扫描(rescan) 3. 缓存改动(stage change) 4. 写注释后提交(commit) 5. Me ...
- github Pull Request合入全流程介绍
图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...
- git详情、git工作流程、常用命令、忽略文件、分支操作、gitee远程仓库使用
今日内容概要 git详情 git工作流程 git常用命令 过滤文件 分支操作 git远程仓库使用 可参照:https://www.cnblogs.com/liuqingzheng/p/15328319 ...
随机推荐
- Java如何正确比较浮点数
看下面这段代码,将 d1 和 d2 两个浮点数进行比较,输出的结果会是什么? double d1 = .1 * 3; double d2 = .3; System.out.println(d1 == ...
- SVG--D3--血缘关系树
最近的工作与可视化有关,有展示血缘关系树的需求 ,类似于这样: 碰巧搜到 D3(用于可视化的js库,作者吕之华),瞬间无法自拔,它的树状图功能基于SVG.js ,暴露的可操作入口也简洁恰当,能帮助你快 ...
- 0 quickstart
说明 使用的安装包有: Prism 6.3 Unity 4.0.1 基于Prism框架的应用程序都包含一个主项目和若干功能模块,主项目负责启动时初始化工作,包括依赖注入容器,定义Shell等等.功能模 ...
- 消息队列--ActiveMQ集群部署
一.activeMQ主要的部署方式? 1,默认的单机部署(kahadb) activeMQ默认的存储单机模式,如果配置文件不做修改,则默认使用此模式.以本地的kahadb文件的方式进行存储,性能完全依 ...
- 基于tensorflow的bilstm_crf的命名实体识别(数据集是msra命名实体识别数据集)
github地址:https://github.com/taishan1994/tensorflow-bilstm-crf 1.熟悉数据 msra数据集总共有三个文件: train.txt:部分数据 ...
- 第三方库文件Joi对数据进行验证的方法以及解决Joi.validate is not a function的问题
Joi:javaScript对象的规则描述语言和验证器 1.npm install joi@14.3.1 2.建立joi.js文件 3.导入第三方包joi const Joi = require('j ...
- 类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
前言 这篇博客主要来说说类与对象在JVM中是如何存储的,由于JVM是个非常庞大的课题,所以我会把他分成很多章节来细细阐述,具体的数量还没有决定,当然这不重要,重点在于是否可以在文章中学到东西,是否对J ...
- kafka生产者数据可靠性保证
为保证 producer 发送的数据,能可靠的发送到指定的 topic,topic 的每个 partition 收到 producer 发送的数据后,都需要向 producer 发送 ack(ackn ...
- 异常记录-Gradle依赖掉坑之旅
前言 最近在项目中遇到了一个问题,死活拉不下来依赖,耗费了一整天,感觉自己真是菜的抠脚. 没想到今天脑子一清醒,刷刷的问题逐个击破了. 问题描述: 项目成员添加了新的依赖,然后我这边项目拉下来,bui ...
- java网络编程socket的使用
Socket 客户端实例 如下的 GreetingClient 是一个客户端程序,该程序通过 socket 连接到服务器并发送一个请求,然后等待一个响应. GreetingClient.java 文件 ...