浅谈运维工程师的自我修养--Git篇第一章

概述:git与svn的区别是:svn是一个集中式管理系统 git是分布式 也就是说在git里面所有的开发者都可以自己将自己的本地仓库随机修改和发布新的版本 他与服务器上面的没有区别
环境准备:linux7 关闭防火墙selinux设置permissive
yum -y install tree 安装以树形结构显示文件目录的命令
git体系结构:
working directory 工作目录
staging atea 暂存区 修改的暂时存放的位置
git directory 版本库

yum -y install git 安装yum里面的git服务
git --version 查看下git当前的版本
git config --global user.name "wit" 创建wit登录用户
git config --global user.email "wit.wang@qq.com" 创建wit用户的邮箱
git config --global color.ui true 设置不用的颜色
git config --global alias.it init 设置it=init的别名 如果有需要则可以设置他的tab键自动补齐功能
vim /root/.gitconfig 查看下配置文件里面设置成功没有
注释:gloabal 修改的是单个用户的配置
system :修改的是全局配置

mkdir /new 创建一个本地的服务共享目录用做git存储 仓库
cd /new/ 进去
git init 初始化空的 Git 版本库于 /new/.git/
ls -a 查看git生成的文件

vim readme 进去
hello git 随便写点东西
git add readme 添加到暂存区
git commit -m "add readme" 提交到版本库
git status 再查看git共享目录的状态里面有没有生成新的版本
git log 查看文件的编码
git show 哈希值(d10446a74aacee7f9c0deaca359bf4a736e58f19) 看他做了那些修改
vim .git/config 进去删除用户jim
vim readme 修改代码内容
git status 修改之后查看应该是红色的
git diff 查看做了那些修改
git add readme 添加到暂存区
git status 查看状态
git commit -m "add readme" 添加到版本库提交
git log 查看日志
git show d10446a74aacee7f9c0deaca359bf4a736e58f19 查看代码修改内容

命令小结:
新建仓库 :git init
git配置 :git config
工作区修改 保存修改 提交修改
git add git commit
查看状态 git status
查看提交历史:git log
查看提交差异:git diff
查看某个提交具体修改:git show
克隆一个远程仓库:git clone repo url ?


git分支和标签:
git branch 查看当前分支
git branch new 创建一个新的new分支
git branch 再次查看有两个分支
git checkout new 切换到new分支
git branch 查看切换了没有
touch main.c 编写一个语言脚本做测试
vim main.c
#include<stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
git add main.c
git commit -m "add main.c"
git log
git show bc4b62d0944dc8d8b4207b614a4b5db196c9abf9
git checkout master 切换回去master 看发现没有gitlog新的文件 这个就是说可以区分git的版本库不同的工作
git tag 查看标签
git tag v1.1
git tag v1.0 给他打个标签
git log --oneline 查看现在的文件对应的标签
git tag -d v1.1 删除标签v1.1
git show v1.0 查看标签标志的值做了那些修改

git基本概念:
git就是一个版本库 方便我们查找 建立目录 方便我们查找
版本库文件的三种状态:
已修改:modified
已暂存:staged
已提交:committed
.git 版本库
工作区下的文件状态:
未被追踪的 :untracked
被追踪的:trackeed
三大工作区:
工作目录
暂存区域
git索引(index) 记录了文件名 时间 参数等信息
版本库
tree -L 2 显示文件的两级目录


git对象模型:
类型:4种数据对象:blob,tree,commit,tag
大小:对象数据内容的大小
文件名:如果SHA1算法生成
SHA1对象数据
用40个字符的字符串用来表示对象名 :目录+名
字符串由对象内容做SHA-1哈希计算得来
通过比较SHA-1值来比较两个文件的内容:快
不同内型的对象用途
blob:存储文件数据 通常是一个文件
tree:类似一个目录 用来管理tree和blob
commit:指向一个tree 标记项目某个特定时间点状态
tag:用来标记某一个提交(commit)


git的文件管理:
工作区 暂存区 版本库
文件添加及提交 git commit -a 所有一次性都提交
git commit --amend 修改最后一次提交
删除文件
git rm -f main.c 直接从暂存区和工作区删除它
rm -rf main.c 这个删除之后还需要操作:
git commit -m "delete main.c"
git rm --cached main.c 从暂存区中删除 在工作目录中保留 这个是乱七八糟的文件在暂存区里面然后我们将其删除
touch test.bin
vim readme
git add .
git status
git rm --cached test.bin 将它从暂存区中删除
git commit -m "add readme"
vim readme
boss is a pig
git status
git commit -m "add readme"
回退:
git reset --soft HEAD^ 恢复到提交的前一次 把内容回复到暂存区
git reset --mixed HEAD^ 撤销提交到工作区
git reset --hard HEAD^ 将工作区 暂存区和版本库恢复到指定版本
git status
git log
删除也算是修改 也可以从版本库中还原
重命名文件
git mv myfunc.c func.c 直接修改工作区的文件名
git commit -m "rename myfunc.c-->fun.c" 提交到版本库
git olog
git config --global alias.olog "log --pretty=oneline"
git olog


文件移动:mv myfunc.c func.c
git status
git add func.c
git status
git commit -m "rename myfunc.c-->func.c"
cd ..
ls

转载于:https://www.cnblogs.com/Cherbim/p/8169159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值