Git版本控制

码林磷火
• 阅读 85

1. Git是什么

版本控制工具

2. 工作区域

  • 远程仓库(Remote):在网络上,GitHub、Gitee和GitLab都能创建远程仓库,和本地仓库一样,远程仓库存放的也是不同的代码版本,只是这些版本可以来自多个本地仓库。
  • 仓库区(Repository):也称本地库或版本库,存放了本地的所有版本(commit提交记录),本地仓库的文件都在 .git/ 目录中。
  • 暂存区(Index/Stage):工作区和本地仓库的缓存空间,里面记录着即将提交给本地仓库(版本库)的文件修改信息,.git/ 目录里的index文件就是暂存区。
  • 工作区(Workspace):平时存放代码的地方,同时也是存放 .git/ (本地仓库)的目录。

3. 工作流程

  • 1.在工作目录中添加、修改文件;
  • 2.将需要进行版本管理的文件放入暂存区域;git add .
  • 3.将暂存区域的文件提交到本地仓库。git commit
  • 4.将本地区域的文件提交到远程仓库。 git push

4. git常用命令

#  第一次初始化(方式1):
git  init
git  add  .
git  commit  -m  'first  commit'
git  remote  add  origin  git@github.com:帐号名/仓库名.git
git  pull  origin  master
git  push  origin  master  #  -f  强推
#  第一次初始化(方式2):
git  clone  git@github.com:git帐号名/仓库名.git
#  平时工作基本操作:
git  checkout  master  #  切到主分支
git  fetch  origin    #  获取最新变更
git  checkout  -b  dev  origin/master  #  基于主分支创建dev分支
git  add  .  #  添加到缓存
git  commit  -m  'xxx'  #  提交到本地仓库
git  fetch  origin  #  获取最新变更
git  rebase  dev  origin/master  #  合并到主分支
git  push  origin  dev  #  推送到远程分支
git  chekout  master  #  切到主分支
git  merge  dev  #  合并开发分支
git  clone  -b  远程分支  仓库地址  #  本地不存在仓库  拉取远程分支代码
git  checkout  -b  远程分支  origin/远程分支  #  本地存在仓库,拉取远程分支
#  初始化仓库
git  init
#  查看仓库当前状态
git  status
#  将文件添加到仓库
git  add  文件名  #  将工作区的某个文件添加到暂存区     
git  add  .  #  将当前工作区的所有文件都加入暂存区
git  add  -u  #  添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件
git  add  -A  #  添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件
git  add  -i  #  进入交互界面模式,按需添加文件到缓存区
#  将暂存区文件提交到本地仓库
git  commit  -m  "提交说明"  #  将暂存区内容提交到本地仓库
git  commit  -a  -m  "提交说明"  #  跳过缓存区操作,直接把工作区内容提交到本地仓库
#  比较文件异同
git  diff  #  工作区与暂存区的差异
git  diff  分支名  #工作区与某分支的差异,远程分支这样写:remotes/origin/分支名
git  diff  HEAD    #  工作区与HEAD指针指向的内容差异
git  diff  提交id  文件路径  #  工作区某文件当前版本与历史版本的差异
git  diff  --stage  #  工作区文件与上次提交的差异(1.6  版本前用  --cached)
git  diff  版本TAG  #  查看从某个版本后都改动内容
git  diff  分支A  分支B  #  比较从分支A和分支B的差异(也支持比较两个TAG)
git  diff  分支A...分支B  #  比较两分支在分开后各自的改动
#  另外:如果只想统计哪些文件被改动,多少行被改动,可以添加  --stat  参数 
#  查看历史记录
git  log  #  查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明)
git  log  -p  -次数  #  查看最近多少次的提交记录
git  log  --stat  #  简略显示每次提交的内容更改
git  log  --name-only  #  仅显示已修改的文件清单
git  log  --name-status  #  显示新增,修改,删除的文件清单
git  log  --oneline  #  让提交记录以精简的一行输出
git  log  –graph  –all  --online  #  图形展示分支的合并历史
git  log  --author=作者    #  查询作者的提交记录(和grep同时使用要加一个--all--match参数)
git  log  --grep=过滤信息  #  列出提交信息中包含过滤信息的提交记录
git  log  -S查询内容  #  和--grep类似,S和查询内容间没有空格
git  log  fileName  #  查看某文件的修改记录,找背锅专用
#  代码回滚
git  reset  HEAD^  #  恢复成上次提交的版本
git  reset  HEAD^^  #  恢复成上上次提交的版本,就是多个^,以此类推或用~次数
git  reflog
git  reset  --hard  版本号
--soft:只是改变HEAD指针指向,缓存区和工作区不变;
--mixed:修改HEAD指针指向,暂存区内容丢失,工作区不变;
--hard:修改HEAD指针指向,暂存区内容丢失,工作区恢复以前状态;
#  同步远程仓库
git  push  -u  origin  master
#  删除版本库文件
git  rm  文件名 
#  版本库里的版本替换工作区的版本
git  checkout  --  test.txt
#  本地仓库内容推送到远程仓库
git  remote  add  origin  git@github.com:帐号名/仓库名.git
#  从远程仓库克隆项目到本地
git  clone  git@github.com:git帐号名/仓库名.git
#  创建分支
git  checkout  -b  dev
-b表示创建并切换分支
上面一条命令相当于一面的二条:
git  branch  dev  //创建分支
git  checkout  dev  //切换分支
#  查看分支
git  branch
#  合并分支
git  merge  dev    #用于合并指定分支到当前分支
git  merge  --no-ff  -m  "merge  with  no-ff"  dev    #加上--no-ff参数就可以用普通模式合并,合
并后的历史有分支,能看出来曾经做过合并
#  删除分支
git  branch  -d  dev
#  查看分支合并图
git  log  --graph  --pretty=oneline  --abbrev-commit
#  查看远程库信息
git  remote
#  git相关配置
#  安装完Git后第一件要做的事,设置用户信息(global可换成local在单独项目生效):
git  config  --global  user.name  "用户名"  #  设置用户名
git  config  --global  user.email  "用户邮箱"      #设置邮箱
git  config  --global  user.name      #  查看用户名是否配置成功
git  config  --global  user.email      #  查看邮箱是否配置
#  其他查看配置相关
git  config  --global  --list    #  查看全局设置相关参数列表
git  config  --local  --list  #  查看本地设置相关参数列表
git  config  --system  --list  #  查看系统配置参数列表
git  config  --list    #  查看所有Git的配置(全局+本地+系统)
git  config  --global  color.ui  true  //显示git相关颜色
#  撤消某次提交
git  revert  HEAD  #  撤销最近的一个提交
git  revert  版本号  #  撤销某次commit
#  拉取远程分支到本地仓库
git  checkout  -b  本地分支  远程分支  #  会在本地新建分支,并自动切换到该分支
git  fetch  origin  远程分支:本地分支  #  会在本地新建分支,但不会自动切换,还需checkout
git  branch  --set-upstream  本地分支  远程分支  #  建立本地分支与远程分支的链接
#  标签
git  tag  标签  //打标签命令,默认为HEAD
git  tag  //显示所有标签
git  tag  标签  版本号  //给某个commit版本添加标签
git  show  标签  //显示某个标签的详细信息
#  同步远程仓库更新
git  fetch    origin  master
点赞
收藏
评论区
推荐文章
皮卡皮卡皮 皮卡皮卡皮
4年前
git 本地代码提交到远程仓库
git将本地代码添加到远程仓库1.本地初始化使用gitinit进行初始化可以使用lsa就可以看到.git文件2.创建远程仓库点击复制仓库地址3.连接远程仓库shellgitremoteaddoriginhttps://gitee.com/test/test.git4.将远程仓库的文件pull到本地gitpullrebase
Stella981 Stella981
3年前
Maven配置文件中 mirror和repository的区别及中央仓库配置大全
1、Maven配置文件中mirror和repository的区别1.1repositoryrepository就是个仓库,maven里有两种仓库,LocalRepository(本地仓库)和RemoteRepository(远程仓库)。!(https://oscimg.oschina.net/oscnet/up0
Stella981 Stella981
3年前
Gitlab的基础概念
1、什么是Gitlab?Gitlab是一个开源分布式版本控制系统开发语言:Ruby功能:管理项目源代码、版本控制、代码复用与查找2、Gitlab与Github的不同Github分布式在线代码托管仓库,个人版可直接在线免费使用,企业版收费且需要服务器安装。
Stella981 Stella981
3年前
Git提交本地库代码到远程服务器的操作
在本地磁盘创建目录mkdirpath进入所创建的目录cdpathgitinit添加远程仓库的代码gitremoteaddorigingit@xbc.me:wordpress.git设置Gitgitconfigglobaluser.name"your_name"
Stella981 Stella981
3年前
Consul Config 使用Git做版本控制的实现
SpringCloudConfig原理!image(http://b.pigx.top/springcloudconfig.png)我们通过git把配置文件推送到远程仓库做版本控制,当版本发生变化的时候,远程仓库通过webhook机制推送消息给ConfigServer,ConfigS
Stella981 Stella981
3年前
Github远程仓库提交代码步骤
1.克隆远程仓库1)当没有设置默认目录时gitclone仓库地址本地存放目录//没有目录的情况2)当设置了本地存放目录时先打开路径,命令:cdpath1.初始化git创建git仓库:gitinit查看文件目录: gitstatus
Stella981 Stella981
3年前
Git连接GitLab远程仓库
1、简介远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github、gitlab等。为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLab。本地Git与远端服务器GitLab之间连接方式主要分为:SSH方式和HTTP方式。HTTP方式:这种方式要求project在创建的时候只
Stella981 Stella981
3年前
Git 常用命令大全
Git(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fgitref.org%2Findex.html) 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。Git常用操作命令:1) 远程仓库相关命令检出仓
Stella981 Stella981
3年前
GitFlow原理浅析
一、Git优点分布式存储,本地仓库包含了远程仓库的所有内容.安全性高,远程仓库文件丢失了也不怕优秀的分支模型,创建/合并分支非常的方便方便快速,由于代码本地都有存储,所以从远程拉取和分支合并时都非常快捷当分支过多时,如何管理这些分支呢?我们团队采用了GitFlow的模式
Stella981 Stella981
3年前
Maven仓库
maven仓库分为本地仓库、远程仓库。项目引用依赖时,先从本地仓库按照坐标查找,如果没有找到则到远程仓库查找,如果还没有就报错。设定本地仓库修改setting.xml文件配置,自定义本地仓库路径。本地仓库只有一个。<localRepository/path/to/local/repo</localRepository
Stella981 Stella981
3年前
Maven仓库介绍
何为仓库Maven中的仓库用来存放生成的构建和各种依赖。严格说来只有两种仓库:本地和远程。本地仓库指本机的一份拷贝,用来缓存远程下载、包含你尚未发布的临时构件。远程仓库指通过各种协议如file://和http://访问的其它类型的仓库。这些仓库可能是第三方搭建的真实的远程仓库,用来提供他们的构件下载(例如repo.mave