目录

引言

Git概述

Git常用命令

Git基础

Git分支

Git标签


引言

Git概述

Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。

【含义】

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS)。

SVN是集中式版本控制系统,版本库是集中放在中央服务器的。

【组成】

本地仓库--->是在开发人员自己电脑上的Git仓库。

远程仓库--->是在远程服务器上的Git仓库。

【相关操作】

Clone--->克隆,就是将远程仓库复制到本地。

Push--->推送,就是将本地仓库代码上传到远程仓库。

Pull--->拉取,就是将远程仓库代码下载到本地仓库。

【工作流程】

  1. 从远程仓库中克隆代码到本地仓库
  2. 从本地仓库中checkout代码然后进行代码修改
  3. 在提交前先将代码提交到暂存区
  4. 提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. 修改完成后,需要和团队成员共享代码时,将代码push到远程仓库


Git常用命令

Git基础

【环境配置】

设置用户信息 :

git config --global user.name “itcast”

git config --global user.email “hello@itcast.cn”

查看配置信息:

git config --list

git config user.name

【在本地初始化一个Git仓库】

  1. 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库
  2. 进入这个目录中,点击右键打开Git bash窗口
  3. 执行命令git init

说明:如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

【工作目录、暂存区以及版本库概念】

版本库--->前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

工作目录--->包含.git文件夹的目录就是工作目录,主要用于存放开发的代码

暂存区--->.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

【Git工作目录下文件的两种状态】

untracked 未跟踪(未被纳入版本控制)

tracked 已跟踪(被纳入版本控制)

  • Unmodified 未修改状态
  • Modified 已修改状态
  • Staged 已暂存状态

注:这些文件的状态会随着我们执行Git的命令发生变化

【本地仓库操作】

git status 查看文件状态 \也可以使用git status –s 使输出信息更加简洁

git add 将未跟踪的文件加入暂存区

git reset 将暂存区的文件取消暂存

git commit 将暂存区的文件修改提交到本地仓库

git rm 删除文件 (注:上面删除的只是工作区的文件,需要提交到本地仓库)

git log 查看日志记录(按Q退出查看)

【远程仓库操作】

git remote 查看远程仓库 或 git remote -v 或 git remote show origin 

git remote add <shortname> <url> 添加一个新的远程 Git 仓库

git clone 远程Git仓库地址  从远程仓库克隆

git remote rm 移除无效的远程仓库

git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge

git pull 是从远程仓库获取最新版本并merge到本地仓库 (注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories)

git push remote-name 推送到远程仓库 

Git分支

【查看分支】

列出所有本地分支--->git branch

列出所有远程分支--->git branch -r

列出所有本地分支和远程分支--->git branch -a

【创建分支】

【切换分支】

【推送至远程仓库分支 】

【合并分支】

有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决。

【删除分支】

如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D 。

注:如果要删除远程仓库中的分支,可以使用命令git push origin –d branchName  


Git标签

创建标签--->git tag 标签名

查看标签--->git tag

检出标签---> git checkout -b 分支 标签名

删除标签 --->删除本地标签--->git tag -d [tag]

删除标签---->删除远程标签--->git push origin :refs/tags/[tag]

Java知识之Git相关推荐

  1. Java知识体系最强总结(2021版)

    学习Java请关注B站 [黑马程序员] 文章目录 前言 第一阶段: Java基础 第二阶段: JavaWeb 第三阶段:Java开发框架 第四阶段:中间件&服务框架 第五阶段:企业级项目实战 ...

  2. 万字 Java 知识地图助你成为 Offer 收割机

    点击关注"码海" 右上角"设为星标"好文章送达比别人快 我相信这些读者或多或少都有一些 Java 基础,但由于看不到全貌,学了一段时间很容易迷失.所以我在寻思着 ...

  3. java知识体系-最新总结(2022版)

    目录 Java面试总结 基础知识 Java概述 基础语法 面向对象 集合框架 IO流 网络编程 常用API 常用工具类库 单元测试 异常 日志 工具 IDEA Eclipse & STS Ma ...

  4. Java知识体系最强总结(2020版) 传送门

    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新.也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读 ...

  5. Java知识体系总结(2020版)

    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新.也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读 ...

  6. Java知识体系最详细总结(2020版)

    转载来源:https://blog.csdn.net/ThinkWon/article/details/103592572 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了 ...

  7. 【转】Java知识体系最强总结(2020版)

    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新.也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读 ...

  8. 【转载】Java知识体系最强总结(2020版)

    原文链接.转载 更新于2020-03-14 18:00:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新.也算 ...

  9. Java知识体系最强总结(2020版)

    目录 Java面试总结 基础知识 Java概述 基础语法 面向对象 集合框架 IO流 网络编程 常用API 常用工具类库 单元测试 异常 日志 工具 IDEA Eclipse & STS Ma ...

最新文章

  1. 关于python中requests模块导入问题-Python中requests模块的核心使用(1)
  2. leetcode算法题--相交链表
  3. Apache FileUpload介绍
  4. Java-Web 监听器和过滤器
  5. LeetCode-Spiral Matrix-螺旋矩阵
  6. python中提取pdf文件某些页_付费?是不可能的!处理 PDF 只需几行代码,彻底解放双手!...
  7. 文件设置索引_Linux文件系统是怎么工作的?
  8. AndroidStudio_AndroidStudio debug的时候断点打不上_No executable code found at line---Android原生开发工作笔记236
  9. Java 读取 INI 配置文件的方法
  10. 红帽发布虚拟化策略 产品即将上市
  11. 初步解决leiningen配置到Eclipse中出错的问题
  12. [Javascript]把html内容复制到剪贴板
  13. RuntimeError: context has already been set(multiprocessing)
  14. mac os安装SPSS26
  15. 增量式解析大型XML文件
  16. 晓日程-首款打通微信和桌面的免费日历应用
  17. 计算机上电自检的作用,计算机上电自检的过程是什么
  18. Android用户注册界面设计
  19. 统一批量修改word页眉页脚
  20. java毕业设计共享充电宝系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. mysql 1146 错误处理
  2. mysql Unknown error 1146
  3. 写程序的时候常用什么字体?
  4. 关于Hanoi塔的实现
  5. 禁止查看网络计算机方法,Win10系统如何禁止某个软件联网?Win10阻止某个程序联网的方法...
  6. Ubuntu(debian)问题解决方案合集
  7. 网络舆情系统的四大要素-张华平博士
  8. plc和c语言谁的前景好,PLC面向对象编程和梯形图逻辑,到底谁更实用一些?
  9. 如何做好一名游戏测试工程师
  10. PyCrypto安装和使用示例