Git版本控制系统-本地仓库

Git版本控制系统-本地仓库

git介绍

不管是做为程序员还是运维工程师,很多人一定都听说过GItHub

分布式版本控制系统

什么是系统?

就是一个应用程序,部署起来,供我们来使用

什么是版本控制?

不管是在企业中,还是我们个人,我们一定都做过版本控制

比如:

1.写脚本,一遍一遍的修改

2.写大学论文

3.写技术文档

什么是分布式

因为Git是分布式的,所以Git支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能

CDN:分布式静态资源缓存系统

Git部署

# 本地仓库安装git
[root@db01 ~]# yum install -y git

# 查看版本
[root@db01 ~]# git --version
git version 1.8.3.1

Git基础操作

场景一

老板:给我写一个官网

程序猿:一天一夜,写出来了,请CEO过目

# html代码
[root@db01 code]# vim index.html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码迭代过程</title>
</head>
<body>
    <div id="demo"></div>
    <script src="src.js"></script>
</body>
</html>

# js代码
[root@db01 code]# vim src.js
const string = '老板好,我是程序猿:您让我写的官网页面,它会动'
let n = 1
demo.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo.innerHTML = string.substring(0,n)
},200)

老板:不够醒目,再改改

程序猿:好嘞,花了一周时间,请CEO过目

# html代码
[root@db01 code]# vim index.html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>代码迭代过程</title>
</head>
<body>
    <div id="demo"></div>
    <script src="src.js"></script>
</body>
</html>

# js代码
[root@db01 code]# vim src.js
const string = '老板好,我是程序猿:您让我写的官网页面,它会动'
let n = 1
demo.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo.innerHTML = string.substring(0,n)
},200)

# CSS代码
[root@db01 code]# vim style.css
#demo{
  border: solid 1px red;
  width: 410px;
  height: 25px;
  background-color: lightpink;
}

老板:还是之前的好看,改回去吧。
程序猿:emmmmmm... 老子不干了。妈的,我该怎么撤回一周内容?

如果你有了GIT就不用再担心上面的场景了,操作如下:

第一版

# 1.创建一个写代码的目录
[root@db01 www]# mkdir /www/code

# 2.将目录初始化成git仓库
[root@db01 code]# git init .
[root@db01 code]# git init /www/code

# 3.查看本地仓库状态
[root@db01 code]# git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

# 4.编写代码
[root@db01 code]# vim index.html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码迭代过程</title>
</head>
<body>
    <div id="demo"></div>
    <script src="src.js"></script>
</body>
</html>

# 5.本地仓库状态更新
[root@db01 code]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       index.html
nothing added to commit but untracked files present (use "git add" to track)

# 6.编写js代码
[root@db01 code]# vim src.js
const string = '老板好,我是程序猿:您让我写的官网页面,它会动'
let n = 1
demo.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo.innerHTML = string.substring(0,n)
},200)

# 7.本地仓库状态更新
[root@db01 code]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       index.html
#       src.js
nothing added to commit but untracked files present (use "git add" to track)

# 8.编辑nginx配置文件
[root@db01 code]# vim /etc/nginx/conf.d/www.conf
server{
        listen 80;
        server_name _;
        index index.html;
        root /www/code;
}

# 9.将文件上传到仓库中
[root@db01 code]# git add .

# 10.再次检查状态
[root@db01 code]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   index.html
#       new file:   src.js
#

# 11.编辑邮箱与名称
[root@db01 code]# git config --global user.email "you@example.com"
[root@db01 code]# git config --global user.name "Your Name"

# 12.保存当前一个版本
[root@db01 code]# git commit -m 'v1.1 官网'
[master (root-commit) b3e4445] v1.1 官网
 2 files changed, 21 insertions(+)
 create mode 100644 index.html
 create mode 100644 src.js

# 13.查看git提交日志
[root@db01 code]# git log
commit b3e444564930fabe39116e6af9bff2c7ae07b814
Author: Your Name <you@example.com>
Date:   Tue Aug 22 12:18:38 2023 +0800

    v1.1 官网

第二版

# 14.html代码
[root@db01 code]# vim index.html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>代码迭代过程</title>
</head>
<body>
    <div id="demo"></div>
    <script src="src.js"></script>
</body>
</html>

# 15.js代码
[root@db01 code]# vim src.js
const string = '老板好,我是程序猿:您让我写的官网页面,它会动'
let n = 1
demo.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo.innerHTML = string.substring(0,n)
},200)

# 16.CSS代码
[root@db01 code]# vim style.css
#demo{
  border: solid 1px red;
  width: 410px;
  height: 25px;
  background-color: lightpink;
}

# 17.将文件上传到仓库中
[root@db01 code]# git add .

# 18.保存当前一个版本
[root@db01 code]# git commit -m 'v1.2 官网'

反复回滚

# 19.查看git版本
[root@db01 code]# git reflog
bff047b HEAD@{0}: commit: v1.2 官网
b3e4445 HEAD@{1}: commit (initial): v1.1 官网

# 20.回滚至第一版
[root@db01 code]# git reset --hard b3e4445
HEAD is now at b3e4445 v1.1 官网

# 21.查看git版本
[root@db01 code]# git reflog
b3e4445 HEAD@{0}: reset: moving to b3e4445
bff047b HEAD@{1}: commit: v1.2 官网
b3e4445 HEAD@{2}: commit (initial): v1.1 官网

# 22.回滚至第二版
[root@db01 code]# git reset --hard bff047b
HEAD is now at bff047b v1.2 官网

版本回滚

# 查询git日志
[root@db01 code]# git log
commit bff047b95d5399285d7ddd108e6c4903fb07974c
Author: Your Name <you@example.com>
Date:   Tue Aug 22 15:55:36 2023 +0800

    v1.2 官网

commit b3e444564930fabe39116e6af9bff2c7ae07b814
Author: Your Name <you@example.com>
Date:   Tue Aug 22 12:18:38 2023 +0800

    v1.1 官网

# 版本回滚
[root@db01 code]# git reset --hard commit号

# 查看git版本
[root@db01 code]# git reflog
bff047b HEAD@{0}: commit: v1.2 官网
b3e4445 HEAD@{1}: commit (initial): v1.1 官网

git状态:

Untracked 还没有在git仓库中的文件
Changes   新文件以及被添加到git仓库中
Unmodified 没有被修改的状态
modified  以及在git仓库中的文件,但是是针对上一次commit后被修改了

git工作区域的切换

image-20230823084545218

场景二

老板:给我写一个官网

程序猿:花了一天一夜,做出来了,请老板过目

# html
[root@db01 code]# vim index.html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码迭代过程</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="demo">澳门皇家DC</div>
    <div id="demo2"></div>
    <script src="main.js"></script>
</body>
</html>

# css
[root@db01 code]# vim style.css
#demo2{
    margin-top: 50px;
}

# js
[root@db01 code]# vim main.js
const string = '官网内容:澳门首家线上DC,性感荷官在线发牌,快来注册吧.'
let n = 1
demo2.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo2.innerHTML = string.substring(0,n)
},200)

# 1.加入缓存区
git add .

# 2.提交到本地仓库
git commit -m 'v1.1 官网'

老板:有点丑,我希望背景颜色是yellow,醒目一些。

老板秘书:我觉得不错,要是字体能做彩色的就好了。

程序猿:MMP,你们的意见就不能统一一下么?

git 分支

此时此刻,聪明的程序猿已经开始使用分支功能了。

# git branch
1.基于当前的commit,创建一个新的分支
2.在哪个分支提交的,代码就会出现在哪个分支

git checkout
1.用于切换另一个分支
2.当前目录有未提交的代码,只要跟另一个分支不冲突,就不需要理会
3.如果冲突了,可以使用通灵术 git stash 也可以合并冲突

## 查看当前分支
[root@db01 code]# git branch
* master

## 创建ceo分支
[root@db01 code]# git branch ceo_branch
[root@db01 code]# git branch
ceo_branch
* master

## 切换分支
[root@db01 code]# git checkout ceo_branch
D src.js
Switched to branch 'ceo_branch'
[root@db01 code]# git branch
* ceo_branch
master

## 创建mishu分支
[root@db01 code]# git branch mishu_branch
[root@db01 code]# git branch
* ceo_branch
master
mishu_branch

需求一:黄色背景

# html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码迭代过程</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="demo">澳门皇家DC</div>
    <div id="demo2"></div>
    <script src="main.js"></script>
</body>
</html>

# css
body{
  background-color: yellow;
}
#demo2{
    margin-top: 50px;
}

# js
const string = '官网内容:澳门首家线上DC,性感荷官在线发牌,快来注册吧.'
let n = 1
demo2.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo2.innerHTML = string.substring(0,n)
},200)

# 1.加入缓存区
[root@db01 code]# git add .

# 2.提交到本地仓库
[root@db01 code]# git commit -m 'v1.2 修改黄色背景'

# 3.如果要删除分支
git branch -D 分支名

需求二:彩色字体

# 切换到秘书分支
git checkout mishu_branch

# html
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码迭代过程</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div id="demo">澳门皇家DC</div>
    <div id="demo2"></div>
    <script src="main.js"></script>
</body>
</html>

# js
const string = '官网内容:澳门首家线上DC,性感荷官在线发牌,快来注册吧.'
let n = 1
demo2.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo2.innerHTML = string.substring(0,n)
},200)

# css
#demo2{
    margin-top: 50px;
}
#demo2{
    margin-top: 50px;
}
#demo,#demo2 {
    display: block;
    /*渐变背景*/
    background-image: -webkit-linear-gradient(left, #3498db, #f47920 10%, #d71345 20%, #f7acbc 30%,
    #ffd400 40%, #3498db 50%, #f47920 60%, #d71345 70%, #f7acbc 80%, #ffd400 90%, #3498db);
    color: transparent; /*文字填充色为透明*/
    -webkit-text-fill-color: transparent;
    -webkit-background-clip: text;          /*背景剪裁为文字,只将文字显示为背景*/
    background-size: 200% 100%;            /*背景图片向水平方向扩大一倍,这样background-position才有移动与变化的空间*/
    /* 动画 */
    animation: masked-animation 4s infinite linear;
}
@keyframes masked-animation {
    0% {
        background-position: 0 0;   /*background-position 属性设置背景图像的起始位置。*/
    }
    100% {
        background-position: -100% 0;
    }
}

# 1.加入缓存区
[root@db01 code]# git add .

# 2.提交到本地仓库
[root@db01 code]# git commit -m 'v1.3 修改彩色字体'

# 3.如果要删除分支
git branch -D 分支名

思考:场景三(git merge)

老板:昨天夜里我和秘书达成一致了,两个版本都要,我在上面,秘书在下面

程序猿:OK,那我合并一下

git分支合并

首选,我们需要明确,我们到底要保留哪个分支,毋庸置疑,肯定是master分支。

因为所有的代码,都是在master的基础上去修改的,在企业中也是这样的,首先有一个写好的基础代

码框架。

然后拆分不同的功能(不同的分支),那么分支开发完毕,没有太大问题,则可以将分支内容合并到

主干(master)上,即便是出了问题,我们也可以根据提交的版本号进行回滚操作。

## 需要保留的分支,直接切换进去
[root@db01 code]# git checkout master
D src.js
Switched to branch 'master'
[root@db01 code]# git branch
ceo_branch
* master
mishu_branch

## 合并CEO分支
[root@db01 code]# git merge ceo_branch
Updating cbcfec4..112f9a1
Fast-forward
 style.css | 3 +++
 1 file changed, 3 insertions(+)

## 合并秘书分支
[root@db01 code]# git merge mishu_branch
Auto-merging style.css
Merge made by the 'recursive' strategy.
 style.css | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

## 使用-sb来查看,被修改同一行的代码的文件是谁
[root@db01 code]# git status -sb
## master

## 使用git show可以查看当前所有的信息
[root@db01 code]# git show
commit 74b9ac3cfbb76deef50095ec3cf675d174ad600e
Merge: 112f9a1 e29a219
Author: 刘建源 <1060243063@qq.com>
Date:   Wed Aug 23 16:22:14 2023 +0800

    Merge branch 'mishu_branch'

那么如果冲突了该如何解决呢,那一定是开发讨论一下,删谁的....

然后修改内容,改完后,重新add然后提交

vim index.html

git add .

git commit -m '解决合并冲突'

分支创建规则

1.按照功能划分

2.按照环境划分

3.按照开发人员划分

4.按照环境和功能划分

image-20230823153750537

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇