git本地仓库代码上线
  DcpJeOZ6VzTX 2023年11月02日 57 0

git本地仓库

git介绍

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

分布式版本控制系统

什么是系统? 就是一个应用程序,部署起来,供我们来使用 什么是版本控制? 不管是在企业中,还是我们个人,我们一定都做过版本控制。 比如: 1.写脚本,一遍一遍的修改 2.大学写论文 3.写技术文档

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

本地仓库git使用

[root@web03 ~]# yum install -y git

git工作区域切换

git本地仓库代码上线_git分支

git基本操作

# 1.将目录初始化成git仓库
[root@web03 ~]# git init /root/code(不在code目录下就写绝对路径,在就是下面的方式:写.当前目录下)
[root@web03 code]# git init .
-----------------------------------------------------------------------------------------------------------
# 2.查看本地仓库状态
[root@web03 code]# git status
	# On branch master (现在不用master改用main)
	#
	# Initial commit
	#
	# Untracked files: (状态:还没有在git仓库中的文件)
	#   (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)

-# git的状态
Untracked:没有被管理(还没有在git仓库中的文件)
Staged/Changes:通过git add放入暂存区(新文件以及被添加到git仓库中)
Unmodified:没有被修改的状态
Modified:文件被修改(已经在git仓库中的文件,但是针对上一次commit提交后又被修改了)

-----------------------------------------------------------------------------------------------------------
# 3.将文件添加到git仓库
[root@web03 code]# git add .
	# 4.1查看添加到git仓库后仓库状态
	[root@web03 code]# git status
	# On branch master
	#
	# Initial commit
	#
	# Changes to be committed: (新文件已经被添加到git仓库中)
	#   (use "git rm --cached <file>..." to unstage)
	#
	#       new file:   index.html
	#       new file:   src.js
------------------------------------------------------------------------------------------------------------
# 4.commit提交前需要先指定邮件和名字
[root@web03 code]# git config --global user.email "you@example.com"
[root@web03 code]# git config --global user.name "Your Name"
------------------------------------------------------------------------------------------------------------
# 5.保存当前一个版本(这是对git add . 添加到git仓库进行后续提交)
-#[root@db01 code]# git commit  (这个是交互式,需要像编写配置文件一样加进去,注意前面有注释要取消再加)
-#[root@web03 code]# git commit -m 'v1.1官网' (直接在命令行指定)
[master (root-commit) 8c5778c] v1.1官网
 2 files changed, 19 insertions(+)
 create mode 100644 index.html
 create mode 100644 src.js
------------------------------------------------------------------------------------------------------------
# 6.查看git提交日志(查看commit号)
[root@web03 code]# git log
commit f4ceb8ea3f1342ffe7883af56bdd038db1b8f37e
Author: Your Name <you@example.com>
Date:   Tue Aug 22 12:28:02 2023 +0800

               v1.2官网

commit 8c5778c3eb952de3e3cca71ba1ac8320adc596b1
Author: Your Name <you@example.com>
Date:   Tue Aug 22 12:21:16 2023 +0800

    v1.1官网
------------------------------------------------------------------------------------------------------------
# 改回之前版本(需要git log查看一下想要回滚版本的commit号,复制前几位即可)
git reset --hard commit号
------------------------------------------------------------------------------------------------------------

# 给commit号打标签
[root@gitlab code]# git tag -a 'v1.3' -m 'v1.3官网'

# 删除本地标签
git tag -d 标签名
# 删除远程标签
git push origin --delete 标签名
# 检查是否删除
git fetch --prune --tags

# 删除commit
场景一

老板:给我写一个官网

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

老板:不够醒目,再改改

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

老板:还是之前的好看,改回去吧

程序猿:emmmmmm...我该怎么撤回一周内容?

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

模拟实际生产过程:

# 1.创建写代码的目录(创建代码仓库)
[root@web03 ~]# mkdir code
[root@web03 ~]# cd code

# 2.编写代码
 -# 2.1编写html代码
[root@web03 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>


 -# 2.2编写JS代码
[root@web03 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)


--------------#重点#---------------------
# 3.写完就立即加入git仓库: git add .
然后提交: git commit -m 'v1.1官网' (-m备注一下)
root@web03 code]# git add .
[root@web03 code]# git commit -m 'v1.1官网'
[master (root-commit) ad14346] v1.1官网
 2 files changed, 19 insertions(+)
 create mode 100644 index.html
 create mode 100644 src.js
----------------------------------------
 
# 4.编写好的代码打包,并发给运维(直接发到代码存放路径)
 [root@web03 ~]# tar zcf code.tar.gz code/
 [root@web03 ~]# scp code.tar.gz 172.16.1.8:/www
 
# 5.运维部署服务,进行代码上线
 -#5.1安装服务
 [root@web02 ~]# yum install -y nginx
 -#5.2创建代码存放目录
 [root@web02 ~]# mkdir /www
 -#5.3到代码存放目录解压代码包
 [root@web02 www]# tar xf code.tar.gz 

# 6.前端根据服务写好页面
 [root@web02 ~]# vim /etc/nginx/conf.d/www.conf 
 server{
        listen 80;
        server_name _;
        index index.html;
        root /www/code;
}
-#6.1修改其他配置文件
[root@web02 ~]# vim /etc/nginx/nginx.conf(随便写了个网页,所以把这个文件里面的server删除了,记得看{}与有没有缺)
-#6.2启动服务
[root@web02 ~]# systemctl start nginx

# 7.测试访问官网看效果
浏览器访问10.0.0.8
...........................................
结果老板不满意,重新提了要求,只好再改
............................................
# 8.重新写代码
-#编写index.html代码
[root@web03 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'>        #这里加了一个链接style.css代码的
</head>
<body>
    <div id="demo"></div>
    <script src="src.js"></script>
</body>
</html>

-#编写src.js代码
[root@web03 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)

-#编写style.css代码
[root@web03 code]# vim style.css
#demo{
  border: solid 1px red;
  width: 440px;
  height: 26px;
  background-color: lightpink;
}
---------------#重点#-------------------
# 9.写完就立即 git add .  然后提交 git commit -m 'v1.2官网'
[root@web03 code]# git add .
[root@web03 code]# git commit -m 'v1.2官网'
[master b416f7e] v1.2官网
 2 files changed, 12 insertions(+), 5 deletions(-)
 create mode 100644 style.css
---------------------------------------
10.
步骤同上
开发写完再次打包发给运维
运维把原来的代码删除,解压用新的代码就好
................................................
测试完给老板看,他居然说第一版的好,让改回去,还好我有git
................................................
# 11.回滚到第一版
-#查看git提交日志(看一下commit号)
[root@web03 code]# git log
commit b416f7e3af7d12c0af0f8c4e000af8c8ea6838bc
Author: 王小葵 <12984820+aaakui@user.noreply.gitee.com>
Date:   Wed Aug 23 15:31:20 2023 +0800

    v1.2官网

commit ad14346ff07b910706e1c22a9831f4928bceaf69
Author: 王小葵 <12984820+aaakui@user.noreply.gitee.com>
Date:   Wed Aug 23 15:24:20 2023 +0800

    v1.1官网


-#git reset --hard 版本号,回滚
[root@web03 code]# git reset --hard ad14346ff07b9107
HEAD is now at ad14346 v1.1官网

12.
开发把v1.1版本代码打包发给运维
运维把原来的代码删除,用新的代码就好

git本地仓库代码上线_git本地仓库_02

git本地仓库代码上线_git本地仓库_03

git分支

分支创建规则 1.按照功能划分 2.按照环境划分 3.按照开发人员划分 4.按照环境和功能划分

git分支基本操作
# 查看当前分支
[root@web03 code]# git branch
* master
# 创建分支
-#创建ceo分支
[root@web03 code]# git branch ceo_branch
[root@web03 code]# git branch
  ceo_branch
* master
-#创建秘书分支
[root@web03 code]# git branch ms_branch
[root@web03 code]# git branch 
  ceo_branch
* master
  ms_branch

# 切换分支(切换到ceo分支)
[root@web03 code]# git checkout ceo_branch
Switched to branch 'ceo_branch'
[root@web03 code]# git branch
* ceo_branch
  master
  ms_branch
  
# 删除分支
-#不能删除当前所在分支
[root@web03 code]# git branch
* ceo_branch
  master
  ms_branch
[root@web03 code]# git branch -D ceo_branch
error: Cannot delete the branch 'ceo_branch' which you are currently on.


-#-D是强制删除
[root@web03 code]# git checkout master 
Switched to branch 'master'

[root@web03 code]# git branch -D ceo_branch
Deleted branch ceo_branch (was ad14346).
[root@web03 code]# git branch
* master
  ms_branch
[root@web03 code]# git branch -d ms_branch
Deleted branch ms_branch (was ad14346).
[root@web03 code]# git branch
* master

# 合并分支(要切换到要保留的分支里)
[root@db01 code]# git merge ceo_branch
Updating a78f184..62f622e
Fast-forward
style.css | 3 +++
1 file changed, 3 insertions(+)

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

# 使用git show可以查看当前所以信息
[root@db01 code]# git show
commit 33a0d27f45ce32521778345304b5b1e90b0deac2
Merge: 62f622e f5ed9f8
Author: Your Name <you@example.com>
Date: Wed Aug 23 09:10:00 2023 +0800
	Merge branch 'mishu_branch'

那么如果冲突了该如何解决呢,那一定是开发讨论一下,删谁的.... 然后修改内容,改完后,重新add然后提交 vim index.html git add . git commit -m '解决合并冲突'

场景二

老板:给我写一个官网

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

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

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

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

此时此刻,优秀的程序员肯定要使用分支功能写两个版本供他们选择了。

使用GIT分支就可以同时存在两个版本啦,操作如下: 

模拟实际生产过程:

# 1.创建写代码的目录(创建代码仓库)
[root@web03 ~]# mkdir code
[root@web03 ~]# cd code

# 2.编写代码
 -# 2.1编写html代码
[root@web03 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">恭喜发财</div>
    <div id="demo2"></div>
    <script src="main.js"></script>
</body>
</html>
 
 -#编写main.js代码
[root@web03 code]# vim main.js
const string = '官网内容:恭喜发财,恭喜恭喜你呀,恭喜恭喜你'
let n = 1
demo2.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo2.innerHTML = string.substring(0,n)
},200)

 -#编写style.css代码
[root@web03 code]# vim style.css 
#demo2{
    margin-top: 50px;
}

---------------#重点------------------------------------
# 3.加入git仓库
[root@web03 code]# git add .

# 4.提交到git仓库
[root@web03 code]# git commit -m 'v1.3官网'
[master 3099e78] v1.3官网
 3 files changed, 17 insertions(+), 5 deletions(-)
 create mode 100644 main.js
 create mode 100644 style.css
-------------------------------------------------------
...................................................
服务已搭建好
开发写完再次打包发给运维,运维部署一下
...................................................
给老板看,结果不满意就算了,他还和秘书意见不一致,各自提了要求
老板:有点丑,我希望背景颜色是yellow,醒目一些。
老板秘书:我觉得不错,要是字体能做彩色的就好了。
...................................................
身为一位优秀的程序员必须写两版,让他们选
此时此刻只好拿出秘密武器:git分支!!!!
...................................................

# 4.给他俩各自创建一个分支,写代码,满足他俩不同的要求
-#创建ceo分支
[root@web03 code]# git branch ceo_branch
-#创建秘书分支
[root@web03 code]# git branch ms_branch

# 5.切换到ceo分支,写代码满足老板需求
[root@web03 code]# git checkout ceo_branch
Switched to branch 'ceo_branch'
-# 查看当前所在分支确认一下
[root@web03 code]# git branch
* ceo_branch
  master
  ms_branch

# 6.按老板需求写代码
 -#编写html代码
[root@web03 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">恭喜发财</div>
    <div id="demo2"></div>
    <script src="main.js"></script>
</body>
</html>
 
 -#编写main.js代码
[root@web03 code]# vim main.js
const string = '官网内容:恭喜发财,恭喜恭喜你呀,恭喜恭喜你'
let n = 1
demo2.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo2.innerHTML = string.substring(0,n)
},200)

 -#编写style.css代码
[root@web03 code]# vim style.css 
body{
  background-color: yellow;
}
#demo2{
    margin-top: 50px;
}
---------------#重点------------------------------------
# 7.加入git仓库
[root@web03 code]# git add .

# 8.提交到git仓库
[root@web03 code]# git commit -m 'v1.4CEO版'
[ceo_branch 856487b] v1.4CEO版
 3 files changed, 20 insertions(+), 5 deletions(-)
 create mode 100644 main.js
 create mode 100644 style.css
-------------------------------------------------------

# 9.切换到秘书分支写代码,满足秘书需求
[root@web03 code]# git checkout ms_branch
Switched to branch 'ms_branch'
-# 查看当前所在分支确认一下
[root@web03 code]# git branch
  ceo_branch
  master
* ms_branch

# 10.按秘书需求写代码
 -#编写html代码
[root@web03 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">恭喜发财</div>
    <div id="demo2"></div>
    <script src="main.js"></script>
</body>
</html>
 
 -#编写main.js代码
[root@web03 code]# vim main.js
const string = '官网内容:恭喜发财,恭喜恭喜你呀,恭喜恭喜你'
let n = 1
demo2.innerHTML = string.substring(0,n)
setInterval(()=>{
    n+=1
    demo2.innerHTML = string.substring(0,n)
},200)

 -#编写style.css代码
[root@web03 code]# vim style.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;
    }
}


---------------#重点------------------------------------
# 11.加入git仓库
[root@web03 code]# git add .

# 12.提交到git仓库
[root@web03 code]# git commit -m 'v1.5ms版'
[ms_branch 1038c5e] v1.5ms版
 3 files changed, 40 insertions(+), 5 deletions(-)
 create mode 100644 main.js
 create mode 100644 style.css
-------------------------------------------------------

把俩分支的代码分别打包给运维,让其部署,给老板和秘书看效果
场景三

结果他俩看完又开始作妖,说如果能把他俩各自的要求合并一下就好了

合并分支

首先,我们需要明确,我们到底要保留哪个分支,毋庸置疑,肯定是master分支。 因为所有的代码,都是在master的基础上去修改的,在企业中也是这样的,首先有一个写好的基础代码框架。 然后拆分不同的功能(不同的分支),那么分支开发完毕,没有太大问题,则可以将分支内容合并到主干(master)上,即便是出了问题,我们也可以根据提交的版本号进行回滚操作。

合并GIT分支,操作如下:

模拟实际生产过程:

# 1.切换到要保留的分支上
[root@web03 code]# git checkout master
[root@web03 code]# git branch
  ceo_branch
* master
  ms_branch

# 2.合并分支
-#合并CEO分支
[root@db01 code]# git merge ceo_branch
Updating a78f184..62f622e
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 | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

--------合并秘书分支时弹出下面这个文件,保存退出即可---------------

Merge branch 'ms_branch'

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
-----------------------------------------------------------------

git可视化GitKraken

把代码打包下载到本地

git本地仓库代码上线_git分支_04



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论