Git
Git 介绍
简介:
是一个版本控制工具
区分:GitHub是一个网站,可以上传代码
版本控制:
记录若干文件内容变化,以便将来查看特定版本修订情况的系统,简言之就是备份和记录。
1.本地 版本控制系统
2.集中式 版本控制系统
版本库 ---- 中央服务器
所有计算机都是先获取最新版本,再工作,再推送给中央服务器。
必须联网且速度慢 中央服务器一旦崩溃则无法工作
3.分布式 版本控制系统
每台计算机都有完整版本库 更安全 互相之间只交换修改的内容
Git历史
linux创始人Linus为应对BitMover公司回收BitKeeper 花了2周时间自己用C语言写的一个分布式版本控制系统
Git的优势
1.直接记录快照,而非差异比较
不像其他系统只关心文件具体内容的差异
Git只关心数据整体是否发生变化
2.近乎所有操作都是本地执行
差不多所有数据只需访问本地,速度飞快
3.时刻保持数据完整性
保持Git之前所有数据会进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。即是任何变化Git都能立即察觉。
4.多数操作仅添加数据
常用的Git操作大多是将数据添加到数据库。
(不可逆操作会使恢复历史版本变得困难)
Git仓库和分支的概念
Git安装
Linux安装
略
Windows安装
略
Git常用命令 ★
Git常见操作指令
打开Git Bash
可以先打开GitBash再进入指定文件夹
或直接在目标位置右键打开GitBash
cd: 切换目录,比如 cd e: 切换到 e 盘
cd …/
cd ll 目录遍历(详细)
cd ls 目录遍历
mkdir: 创建一个文件夹
pwd: 查看当前目录 (路径)
tab 自动补全
clear 清空屏幕
~:表示当前位置为用户的目录
一. 创建版本库
git init
: 初始化一个本地库(隐藏的lib)
$ git config --global user.name "name"
: 设置用户名
$ git config --global user.email "email@example.com"
: 设置邮箱
设置用户名和邮箱只需做一次,用户名和邮箱就是GItHub网站注册的用户名和邮箱
安装了TortoiseGit会有git的标识
二. 基本文件操作
git add 文件名
: 添加文件到缓存区 ★
git commit 文件名 -m '注释'
: 提交文件到分支,-m 添加说明(即是注释) ★
注意:每次提交文件都需要先添加文件(先add 再commit) 注释比较重要需要添加 若忘记加-m则会进入vi编辑器模式(类似Linux系统 直接:wq退出即可)
git status
: 查看文件是否有修改 (确认)
git diff
: 对比文件修改内容
git log
: 查看提交历史
git reset --hard HEAD^
: 回到上一个版本(^个数代表跳跃版本数)
git reset --hard xxx
: 回到指定版本,版本号可以不写全(历史版本里会看到随机生成的版本号)
git reflog
: 查看历史提交版本(全)(能看到提交 重置操作)
git rm
: 删除版本库文件
rm
: 删除本地文件
ls
: 查看文件目录
git add 和 git commit 示例:
创建一个测试用的文件git_test.txt
git status 示例:
git diff 示例:
创建远程版本库★
1.创建SSH Key
$ ssh-keygen -t rsa -C "邮箱地址"
一路回车(Enter)
在用户主目录里找到.ssh 目录,里面有 id_rsa(私钥) 和 id_rsa.pub(公钥)
2.完成创建SSH keys
进入你的GitHub
右上角 setting
SSH and GPG keys
New SSH Key
起好标题
将公钥id_rsa.pub
里的数据复制过来
点击确定
3.验证是否成功
ssh -T git@github.com
验证成功
如果这里失败的话不是秘钥有问题就是账户名和邮箱有问题
4.在github上创建一个版本库
因为之前本地上的库名是git01,我们也命名为git01,如果已经有了,建议删除。
在Repository里点击+
或右上角的+
里点击Create a new repository
一般需要添加描述
github已经给出连接的提示了
已经完成前3步 接着完成后两步骤(直接复制)
git remote add origin https://github.com/dingjiandashen/git01.git
git push -u origin master
需要输入用户名 和 用户密码
100% 成功
刷新github网页 能够看到我们之前上传的文件
文件中的内容
我们测试一下上传修改文件
修改文件内容为
111
222
添加add 提交commit
git push origin master
推送
这次不需要 -u
参数
我们查看下结果
分支管理
1、创建 dev 分支,切换到 dev 分支
git checkout -b dev
(git checkout 命令加上-b 参数表示创建并切换,相当于以下两条命令:
git branch dev
创建dev分支
git checkout dev
切换到dev分支
)
新分支dev里的操作不会影响master
2、查看当前分支
git branch
3、修改 git_test.txt,add、commit
4、切换回 master
git checkout master
切换回master分支
查看文件
5、合并分支
git merge dev
当前分支与dev分支合并
查看文件
一般都是做好分支的功能之后,检查确定好之后才进行分支的合并
6、删除分支
git branch -d dev
删除dev分支
注意不要在自己位置删除
7、解决冲突
先创建两个分支dev01和dev02
在dev01分支添加数据
添加 提交 合并
切换到dev02分支修改文件数据
这里会有正在合并的标记
修改数据
★找到冲突文件,去掉<<<<< =====
★自己决定留下那些文件
git add 冲突文件名字
git commit -m ‘注释’
这里需要将修改后的文件先添加再提交
这里不写提交文件名代表提交所有文件
结果示意:
克隆和fork
clone
示例:
在github上搜索jquary 点击All Github
选择一个点击
这里只是Download ZIP的话就只是将文件下载下来(并不是下载版本库)
以之前的git01版本库为例
只下载的话就是一个压缩包
可以克隆
复制网址或点击右边下载
接着找一个指定位置 右键 git base here
git clone 网址
拉取版本库到本地
测试一下上传文件
添加 提交 推送
fork
相当于做标记 类似于我们的网页收藏夹
在github中选中别人的项目文件,点击fork,会在左边生成一个链接
TortoiseGit
可以直接有工具代替上面的Git操作