一,Git简介
1,Git是什么?
Git是目前世界上最先进的分布式版本控制系统。
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。
2,Git的特点
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时,都十分高效,而且非常的高大上。
3,集中式与分布式的区别?
最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新的版本,然后开始干活,干完活后,需要把自己做完的活推送到中央服务器。而且集中式版本控制系统是必须联网才能工作的,一旦断网,所有人都干不成活了,可想而知,集中式版本控制系统的局限性有多大。
Git是目前世界上最流行的分布式版本控制系统,它没有中央处理器,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上,随时都可以将自己在工作区间做的修改提交到本地仓库,最后将自己的本地版本仓库推动到远程版本仓库进行合并,效率可想而知是可控的贼高。
长话短说,想详细了解git可以去看看我大神的解释
二,Git的下载和安装及注册
在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
本篇我们只介绍在Windows下安装Git,Git 各平台安装包下载地址为:点我👆👆👆
傻瓜式安装,一只下一步下一步就行了,详细安装教程
1、打开码云网站:
2、点注册提交资料
三,Git 工作流程
一般工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
下图展示了 Git 的工作流程:
四,Git 工作区、暂存区和版本库
基本概念
我们先来理解下 Git 工作区、暂存区和版本库概念:
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:
详细介绍来源于 菜鸟教程
图中左侧为工作区,右侧为版本库。在版本库中标记为 “index” 的区域是暂存区(stage/index),标记为 “master” 的是 master 分支所代表的目录树。
图中我们可以看出此时 “HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
图中的 objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行 git checkout . 或者 git checkout – 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
当执行 git checkout HEAD . 或者 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
1,Git 创建仓库
git init - 初始化仓库。
Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init
是使用 Git 的第一个命令。 在执行完成 git init 命令后,Git 仓库会生成一个 .git
目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。
git init
git add . - 添加文件到暂存区。
git commit - 将暂存区内容添加到仓库中。
2,暂存盘
git add ---------------------添加到暂存盘
git add my.txt------------添加某个文件到暂存盘
git add *.txt ----------------添加某种类型的文件到暂存盘
git add . --------添加任意类型的文件到暂存盘
git checkout xxx--------从暂存盘取回到工作区
- git checkout my.txt
- git checkout *.txt
- git checkout .
3,版本库
必须先添加到暂存盘,再添加到版本库
git add .---------------------------------------------添加到暂存盘
git commit -m “提示语句” -----------------------添加版本库
git log ------------------------------------------------查看版本
git reflog --------------------------------------------查看相关版本切换到某个版本
git reset --hard ------------------------------------版本号
4,推送到远程
添加远程仓库
git remote add origin 仓库地址
添加到版本库
git add .
git commit -m “提示”
推送到远程
git push -u origin “master”
第二次推送
git push origin “master”
5,下载远程到本地
git clone 远程地址
6,推送到远程
git push -u origin “master”-----------------首次
git push origin “master”------------------推送
git push -f origin “master”-----------------------强制用本地替换远程
7,拉取远程分支
git fetch origin “zql”------------- 拉取远程“zql” 分支
git checkout zql -------------------切换到本地zql分支 git
pull origin “zql” ---------------------拉取并合并到本地 zql分支
8,分支
查看分支
git branch 查看本地分支
git branch -r 查看远程分支
创建分支
git branch 分支名
切换分支
git checkout 分支名
切换并创建分支
git checkout -b 分支名
合并分支
git merge 分支名称
删除分支
git branch 分支名 -d
注意!!!
修改本地分支文件的时候(这个分支有可能别人也操作)
一定也要先:git pull origin 分支
再 编辑(确保拿到的是服务器最新文件)
五,常用git命令
1、信息查看
1、查看日志 git log q退出
2、查看本地分支 git branch
3、查看远程分支 git branch -r
4、查看分支关联关系 git branch -vv
5、查看当前本地分支状态 git status
2、分支相关命令
1、创建分支 git branch your_branch_name
2、切换分支 git checkout your_branch_name
3、创建分支并切换到新分支上去 git checkout -b your_branch_name
4、基于某个分支创建新的分支 git branch branch1 branch2
4.1、将新建分支推到远程 git push --set-upstream origin test
5、拉取分支代码到本地 git pull
拉取指定分支到本地 git checkout -b 本地分支 origin 远程分支
6、删除本地分支 git branch -d your_branch_name
7、删除远程分支 git push origin your_branch_name
8、强制提交到远程分支 git push -f origin you_branch_name
9、分支合并(将 bugfix01 分支合并到 master 分支)
1、切换到 master 分支上
git checkout master
2、合并分支
git merge bugfix01
3、提交
git push
10、分支回滚
回滚机制说明:
1、在git中,用HEAD表示当前版本
2、上一个版本就是HEAD^
3、上上一个版本就是HEAD^^
4、通过数字表示之前100个版本HEAD~100
5、git log可以查看提交历史,查看commit_id,按q退出
6、回滚命令
git reset --hard commit_id
11、强制覆盖本地仓库
1、从远程仓库下载最新版本
git fetch --all
2、将本地设为刚获取的最新的内容
git reset --hard origin/master
------------------------------------------------- 我是一条「 ʕง•ᴥ•ʔง ʕ•ᴥ•ʔ ʕ ᵔᴥᵔ ʔ」分割线 -------------------------------------------------