git开发实战:认识git
git简介:
git是分布式版本控制系统,相比较svn相比,git会在本地保存完整的提交记录,即使远程服务器宕机数据消失,可以将本地分支提交到远程服务器,本地分支会保存完整的记录。只要文件提交到git中,就能保证这个文件永远不会丢失,可以根据提交id来找到这个文件。
git上每次提交记录会记录上次提交的id,git是保存和当前提交文件和前一个提交文件对比,来保存,这样减少保存的空间。
git的文件状态分为3中:
已修改--已修改文件是保存在当前工作区,
已暂存--将工作区修改的文件保存到缓存区中
已提交--将缓存区中的文件提交到对象库
git设置用户名可以分为3中,分别是全局、用户和本项目,在具体项目中使用哪个用户优先的优先级逐渐降低
针对系统:git config --system user.name 'system name'
针对用户:git config --global user.name 'global name'
针对项目:git config --local user.name 'local user'
git简单命令
1. git init 初始化本地仓库
2. git add . 将工作区修改的文件保存到缓存区中 git add hello.txt
3. git commit 将缓存区中的文件添加到对象库 git commit -m '添加hello.txt文件'
4. git status 查看文件状态
git rm hello.txt 删除文件 rm hello.txt删除文件
5. git rm --cached hello.txt 将添加到缓存区中的hello.txt文件回退到工作区
6. git HEAD hello.txt 另外一种将缓存区的文件回退到工作区
7. git log 查看提交日志 git log -2 查看最近两次提交日志
git log pretty=online 日志以一行显示
git log --graph 以图型化显示提交记录
git reflog 记录所有的操作日志
8. git branch 查看所有分支
git branch newbranch 创建新分支
git checkout newbranch 切换到新分支
git checkout -b newbranch2 新建并切换分支
9. git merge newbranch 将newbranch分支内容合并到本分支上
git merge --no-ff dev 以提交的方式合并分支
合并时如果new分支内容高于现在分支的内容,即new分支在本分支基础上还有提交,这时将采用fast ford快速合并
合并时如果不是上面的情况,可能会存在冲突,当冲突时,需要手工解决冲突
10. git branch -m dev1 devlop 将dev1分支修改为devlop
11. git stash 保存当前分支修改的内容临时保存
git stash list 列出stash内容
git stash pop 先恢复,再将已恢复的stash删除
git stash apply 恢复stash,但不删除
git stash drop stash{0} 删除stash0
git stash -m '设置保存当前stash备注'
12. 标签
git tag v1.0
git tag v2.0 -m '这时带有注释的标签'
git tag -d v1.0 删除v1.0标签
git tag 列出所有标签 git tag -l ‘*2’ 列出标签结尾是2的所有标签
13 diff
git diff 比较工作区和缓存区文件之间不同
git diff HEAD 比较工作区和最近一次提交文件的不同
git diff -cached 比较最新提交和缓存区文件不同
14 git pull git push
git pull 拉取最新分支,git fetch+git merge
git push 推送最新分支,git fetxh+git merge
git remote show 显示远程分支 git remote show origin 详细显示origin分支
git同一个分支会存在3份,分别是本地分支,本地远程分支(远程分支,只读),远程分支,
在pull时,首先将远程分支的最近一次提交id同步给本地远程分支,然后后本地远程分支和本地分支合并(可能会产生冲突),提交时也是这样。
15. 将本地分支推送到远程分支上
git push origin src:desc 将本地的src分支内容,推送到远程desc分支
git push origin :desc 将空分支推送到远程,远程分支被删除
git push origin --delete dev 删除分支
git push --set-upstream origin dev1:dev2 将本地的dev1分支创建到远程的dev2分支上
16 远程分支修改名字只能先删除分支,再将本地分支推送大远程分支上
原文地址:https://www.cnblogs.com/dc-earl/p/11386051.html
- 程序员你为什么这么累【续】:编码习惯之配置规范
- Spring Security (一) Architecture Overview
- Spring Security (二) Guides
- 一个 android 的框架
- Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式
- android常用接口(二)
- Spring Cloud实战小贴士:Zuul的饥饿加载(eager-load)使用
- RxAndroid完全教程
- 全能型反汇编引擎 – Capstone-Engine
- Hijack攻击揭秘
- 都在说微服务,那么微服务的反模式和陷阱是什么(二)
- Spring Boot 2.0 - WebFlux framework
- Spring Cloud构建微服务架构:服务网关(路由配置)【Dalston版】
- SpringCloud实战小贴士:Zuul的路径匹配
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux下快速列出局域网中所有主机名(计算机名)的脚本
- 详解Linux重定向用法
- Zabbix基于snmp实现监控linux主机
- 快速解决linux下中文输入法问题
- Linux实现文件内容去重及求交并差集
- Linux rpm、yum指令及使用方法详解
- Linux下遇到PyCurl的错误解决方法
- Linux cut 命令详解
- linux下安装ffmpeg的详细教程
- 如何利用Gitlab-ci持续部署到远程机器(详细教程)
- Linux常用命令之grep命令用法详解
- 详解Linux动态库生成与使用指南
- Vue 3 入门基础知识
- 在Linux系统中使用Vim读写远程文件的命令详解
- Vue.js实现咸鱼底部Tab凸起|vue自定义导航条组件