Skip to content

git

logo

一 概述

1 Git是什么

https://git-scm.com/

Git 是目前世界上最先进的,开源的,分布式版本控制系统。

传说 linux 系统版本管理以前是 BitKeeper 版本管理系统免费授权使用,后来 BitKeeper 因为 linux 社区的人试图破解后被收回了免费授权,linus Torvalds 一怒之下两周写了个更好的分布式版本控制系统。

2 Git和Github

Octocat

确切的说 GitHub 是一家公司,位于旧金山,由 Chris Wanstrath, PJ Hyett 与 Tom Preston-Werner 三位开发者在 2008 年 4 月创办。

2008 年 4 月 10 日,Github 正式成立,主要提供基于 git 的版本托管服务。一经上线,它的发展速度惊为天人,截止目前,Github 已经发展成全球最大的开源社区。 所以 Git 只是 Github 上用来管理项目的一个工具而已,但是 Github 的功能可远不止于此!

3 集中式和分布式

集中式版本控制(SVN)

1558506140040

SVN 是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。如果中心服务器出现问题,所有人都不能正常干活,恢复也很麻烦,因为 SVN 记录的是每次改动的差异,不是完整文件。

集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。

但是相较于其优点而言,集中式版本控制工具缺点很明显:

  • 服务器单点故障
  • 容错性差

分布式版本控制(Git)

1558506165102

Git 是分布式版本控制系统,那么它可以没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件 A,其他人也在电脑上改了文件 A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

4 相关概念

工作区、暂存区、版本库

1560737368971

工作区

工作区就是你在电脑里能看到的目录

版本库与暂存区

工作区有一个隐藏目录**.git**,这个不算工作区,而是 Git 的版本库。

Git 的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有 Git 为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"。由于 git 是分布式版本管理工具,所以 git 在不需要联网的情况下也具有完整的版本管理能力。

版本库分为:

  • 远程仓库
  • 本地仓库

分支

branch

二 安装

1 下载

https://git-scm.com/download

2 安装

一路下一步

3 配置

任意位置右键,Git Bash Here

4 测试

git version

三 快速入门

1 TortoiseGit

TortoiseGit_logo

下载

https://tortoisegit.org/

安装

一路下一步

2 本地仓库

新建仓库

git init

查看状态

git status

差异比较

git diff

暂存变更

git add

提交变更

git commit

日志查看

git log

查看日志关联

git reflog

版本回退

git reset --hard

撤销修改

git checkout

忽略文件

gitignore

3 远程仓库

关联仓库

git remote

同步推送

git push

同步拉取

git pull

仓库克隆

git clone

4 分支操作

查看分支

git branch

创建分支

git branch dev

切换分支

git checkout

合并分支

git merge

5 常见问题

合并冲突

具体演示

解决冲突

具体演示

再次提交

具体演示

四 Idea整合

具体演示

五 学习目标总结

  • 了解 git 的操作命令
  • 理解 git 的分支操作
  • 能够使用 git 基本命令
  • 能够使用 TortoiseGit 操作 git
  • 能够在 idea 中使用 git
  • 能够概述 git 基本概念
  • 能够概述 git 工作流程
  • 能够正确安装 git 环境
  • 掌握从远程仓库克隆项目
  • 掌握将本地仓库代码推送(push)到远程仓库
  • 掌握从远程仓库拉取(pull)最新代码
  • 掌握如何解决冲突

六 代办

https://blog.csdn.net/dominating_/article/details/81300455

https://blog.csdn.net/weixin_39148042/article/details/128627440

https://blog.csdn.net/weixin_39148042/article/details/128627440

https://blog.csdn.net/m_review/article/details/103457998

https://gitlab.com/tortoisegit/tortoisegit/-/issues/3912