Git的介绍和常用命令使用
一、Git和SVN的区别
- Git是分布式版本控制系统而SVN都是集中式的版本控制系统
集中化版本控制:都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。
- 分布式版本控制:客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
二、介绍Git的三区和三状态
- 工作区:工作区是对项目的某个版本独立提取出来的内容。
- 暂存区:是一个文件,保存了下次将提交的文件列表信息。
- 仓库区:Git 用来保存项目的元数据和对象数据库的地方。
- 修改状态:如果自上次取出后,作了修改但还没有放到暂存区域。
- 暂存状态:如果作了修改并已放入暂存区域。
- 提交状态:如果 Git 目录中保存着的特定版本文件。
三、Git常用命令
- 1、安装: 打开git官网http://git-scm.com/下载。
- 2、设置用户信息:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
git config –-list 可以查看git信息
复制代码
- 3、获取 Git 仓库
第一种是在现有项目或目录下导入所有文件到 Git 中。
第二种是从一个服务器克隆一个现有的 Git 仓库。
首先的生成密匙:
ssh-keygen -t rsa -C "your_email@youremail.com" 生成私密,在.ssh下找到id_rsa.pub.把里面的密匙加到gitlab中,不然是不能提交代码的。
使用git init 对现有项目管理。会在目录下生成.git版本文件。或者克隆现有的仓库:git clone 你需要克隆的git项目地址 (有两种协议http、ssh)。
- 4、克隆后会发现默认分支是master分支。
- 5、创建新分支并切换到该分支:
git checkout –b 分支名
- 6、切换分支:
git checkout 分支名
- 7、检查当前文件状态:
git status
- 8、查看远程分支:
git branch –r
- 9、删除远程分支:
git push origin --delete 分支名 或 git push origin :分支名
- 10、把本地分支推到远程:
git push --set-upstream origin 分支名
- 11、删除本地分支:
git branch -d 分支名
- 12、删除远程仓库:
git remote rm origin (比如我从GitHub下colne后,需要提交到我们自己的版本仓库时)
- 13、添加到远程:
git remote add origin https://你的远程git地址。 git push -u origin master //提交到远程版本库 u 是--set-upstream 的简写
- 14、添加文件到暂存区:
git add .
- 15、提交文件:
git commit -m '添加内容'
- 16、跳过暂存区提交文件:
git commit –a –m '添加内容'
- 17、移除文件不纳入版本:
git rm 文件
- 18、从暂存区移除文件:
git rm -–cached 文件
- 19、查看提交历史:
git log
、git log --oneline --before={3.weeks.ago} --after={2016-08-19}
- 20、打标签:
git tag –a v1.4 -m 'version 1.4' (-m 选项指定了一条将会存储在标签中的信息)
- 21、打完标签推送到远程:
git push origin v1.4
- 22、检出莫个标签作为开发分支:
git checkout -b 分支名 v1.4
- 23、推送到远程仓库更新:
git push
- 24、从远程仓库拉取更新:
git pull
- 25、回滚到当前版本、上个版本,就像没提交过一样:
git reset --hard HEAD git reset --hard HEAD^
- 26、回滚的日志(后悔药):
git reflog
- 27、统计某人贡献的代码行数:
git log --author="$(git config --get user.name)" --since=2016-01-01 --before=2016-12-31 --pretty=tformat: --numstat | awk '{adds += $1; subs += $2; all += $1 + $2} END {printf "added lines: %s removed lines : %s all lines: %s\n",adds,subs,all}'
Git的介绍和常用命令使用相关推荐
- 版本控制工具Git详细介绍和常用命令
一.安装Git 在linux系统使用非常方便,只需要打开shell界面,并输入: sudo apt-get install git-core 按下回车后输入密码,即可完成Git的安装.但我们可能更多情 ...
- Git的基本概念/常用命令及实例
Git的基本概念/常用命令及实例 什么是仓库 在 Git 的概念中,仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如 ...
- redis 介绍和常用命令
redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...
- git日常使用的常用命令总结
git日常使用的常用命令总结 git 是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常 ...
- nvm介绍及常用命令
nvm介绍及常用命令 1.为什么使用nvm? nvm是一个管理nodejs版本的工具.在实际的开发中,有些项目的开发依赖需要低版本的nodejs运行环境,此时我们就需要使用nvm来降低nodejs版本 ...
- 图解 Git 工作原理和常用命令使用教程
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 marklodato.github.io/visual-git-guide/in ...
- 收藏!工作中Git使用实践和常用命令流程合集
来自:匠心Java 工作中git是一项必不可少的技能,在项目的开发进程中起着至关重要的作用 下面介绍一些git在工作中的一些使用实践.常用流程.常用命令,供大家参考! 一:前言 Git的定义是:分布式 ...
- 混沌测试工具chaosblade介绍及常用命令汇总
目录 一.什么是混沌测试 二.环境搭建 三.测试指导文档 四.常用命令介绍 五.注意事项 一.什么是混沌测试 类似于"故障演练",通过构造各类异常,验证系统在碰到这些异常时是否有做 ...
- Git 详解及常用命令
引言 学习内容:Git .GitHub .Gitee码云 .GitLab的使用 Git相关内容 Git介绍 分布式版本控制工具 VS 集中式版本控制工具 Git安装 Git命令 git的常用命令 Gi ...
- DOS介绍以及常用命令
DOS介绍 来自百度百科: dos,是磁盘操作系统的缩写,是个人计算机上的一类操作系统.DOS是1979年由微软公司为IBM个人电脑开发的MS-DOS,它是一个单用户单任务的操作系统.DOS是Disk ...
最新文章
- 记linux与Windows之间实现文件实时同步的方案
- IBM Java多线程 - 3.无处不在的线程
- 发布程序后显示:未能创建类型
- HDFS建筑与shell操作
- Android Security视频学习合集
- [Python人工智能] 十五.无监督学习Autoencoder原理及聚类可视化案例详解
- k8s php mysql_在k8s上部署第一个php应用
- 如何运行 Angular library 的原理图 Schematics
- 解决:您需要来自xxx的权限才能对此文件夹进行更改(电脑系统取得管理员权限)
- redis 计数 java_redission计数器实现,redisTemplate计数器
- 零侵入性:一个注解,优雅的实现循环重试功能
- VS2010 MFC 使用GDI+给图片添加汉字
- Hive复杂数据类型 struct
- C++学习笔记——opencv2模块(图像处理)
- 基于Matpower的电力系统潮流计算仿真
- Java网络编程详解
- EINT DINT ERTM DRTM EALLOW EDIS ESTOP0的理解
- 阿里巴巴十周年有感----宗教的盛宴
- 【小峰の题单】网络流经典题目
- Codeforces965—A:Paper Airplanes(思维)
热门文章
- 疫情下的创业品牌如何逆风翻盘?
- 操作系统编写之引导扇区 1
- 4.7 ResNet CNN、tensorflow实现——python实战
- 有趣的算法(一):如何让有情人终成眷属
- python - color print
- numpy教程:随机数模块numpy.random
- 体重 年龄 性别 身高 预测鞋码_计算体重指数时,需要以下()数据。A.性别B.年龄C.身高D.体重...
- html css没有反应,只有CSS和HTML的标签没有正确响应
- 阻止滑动事件_重温DOM事件流,捕获、冒泡、useCapture、passive
- mysql查询每个表占用空间,【MySQL】查询所有数据库占用磁盘空间大小和单个库中所有表的大小...