Git版本管理

1. GIT简介
GIT有两个重要的时间点:第一个时间点2005年GIT诞生,之后迅速成为最流行的分布式版本控制系统。第二个时间点2008年GitHub网站上线,它为开源项目免费提供Git存储。
2. GIT优势
1) 方便快速,分布式管理。
2)直接记录快照,而非差异比较。
2)对非线性开发模式的强力支持。

csv,svn等版本管理系统以文件变更列表的方式存储信息, 这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。Git 则是把数据看作是对小型文件系统的一组快照。 每次提交更新或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效如果文件没有修改,Git 不再重新存储该文件而是只保留一个链接指向之前存储的文件。
Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照

3. GIT的三种状态
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域

工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。
Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。

4. GIT安装
linux上安装git命令如下:

$ sudo yum install git

5. GIT初始配置

安装完Git后首先需要设置你的用户名称与邮件地址

git config --global user.name "will"
git config --global user.email will.wang@xxx.com

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息

检查配置信息

#所有配置信息
git config --list
#指定项配置信息
git config user.name
#获得某项帮助文档
git help clone

6. GIT常用命令

初始化仓库

git init

克隆现有的仓库

git clone ssh://git@ip:port/yrz-teams/xxx.git

检查当前文件状态,出现任何处于未跟踪状态的新文件Git会在这里列出来

git status

提交文件到暂存区

git add README.md

比较工作目录中当前文件和暂存区域快照之间的差异(git diff只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动)

git diff

查看已暂存的将要添加到下次提交里的内容

git diff --staged 

提交代码

git commit -m “massage”

推送到远端

git push

当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用

git rm README.md
git commit -m 'delete somefile'
git push

当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用

git rm --cached README.md
git commit -m 'delete somefile'
git push

移动文件

git mv README.md README

查看提交历史

#-p:用来显示每次提交的内容差异,-2:仅显示最近两次提交
git log -p -2
#格式化的方式显示提交历史
git log --pretty=format:"%h - %an, %ar : %s"

%h 提交对象(commit)的完整哈希字串,%an 作者(author)的名字,%ar作者修订日期,按多久以前的方式显示,%s 提交说明
撤销提交操作

当提交完成后发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交

git commit --amend

利用git commit —amend —no-edit命令修改上一次变更内容

#第一次commit内容
echo 'Hello world' >> README.md
git add .
git commit -m "modify README.md"
git log --oneline
#修改文件内容并合并到上一次的commit变更当中
echo 'Hello will' >> README.md
git add .
git commit --amend --no-edit
git log --oneline

执行结果如下:

f30703a (HEAD -> master) modify README.md
dd82da4 (HEAD -> master) modify README.md
hash值由f30703a 变成了dd82da4 ,但是message内容并没有发生变化,并且最重要的是只有一条commit记录

查看远程仓库

git remote -v

若没有克隆现有仓库,需要将的仓库连接到某个远程服务器,可以使用如下命令添加,server对应远端仓库路径

git remote add origin <server>

将 HEAD 中的最新内容替换掉你的工作目录中的文件

git checkout -- <filename>

若需丢弃所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它

git fetch origin
git reset --hard origin/master

合并其他分支到当前分支

git merge <branch>

创建分支

git checkout -b <branch>

查看分支

#查看本地分支
git branch
#查看远程分支
git branch -r

切换回主分支

git checkout master
git checkout feature/feature-gitflow-20181226

删除分支

git branch -d <branch>

7. GIT工作空间
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值