zl程序教程

您现在的位置是:首页 >  其他

当前栏目

03·灵魂前端工程师养成-git本地仓库

工程师Git前端 本地 03 仓库 灵魂 养成
2023-06-13 09:11:06 时间

-曾老湿, 江湖人称曾老大。


-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。


Git介绍

不管是做为程序猿还是运维攻城狮,很多人一定都听说过GitHub

一个全球最大的同性交友平台

但是如果想要一起同性交友。。那必须先学会git

思考:场景一 CEO:给我写一个官网 程序猿:一天一夜,写出来了,请CEO过目 CEO:不够醒目,再改改 程序猿:好嘞,花了一周时间,请CEO过目 CEO:还是之前的好看,改回去吧。 程序猿:emmmmmm... 老子不干了。妈的,我该怎么撤回一周内容?

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

git config --global user.name zls
git config --global user.email 253097001@qq.com
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor "code --wait"
git config --global core.autocrlf input


#查看信息
MacBook-Pro:~ driverzeng$ git config --global --list
user.name=zls
user.email=123@qq.com
push.default=simple
core.quotepath=false
core.editor=code --wait
core.autocrlf=input


#MAC直接呼出 VScode,设置环境变量
MacBook-Pro:bin driverzeng$ sudo vim /etc/profile
export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
#加载环境变量
MacBook-Pro:bin driverzeng$ source /etc/profile
#查看环境变量
MacBook-Pro:bin driverzeng$ echo $PATH
#呼出VScode
MacBook-Pro:bin driverzeng$ code


#进入桌面
MacBook-Pro:bin driverzeng$ cd /Users/driverzeng/Desktop/
#创建项目目录
MacBook-Pro:Desktop driverzeng$ mkdir demo-1
#创建文件
MacBook-Pro:Desktop driverzeng$ touch demo-1/index.html
#启动项目
MacBook-Pro:Desktop driverzeng$ code demo-1/


git初始化项目

<!--进入demo-1目录-->
MacBook-Pro:Desktop driverzeng$ cd demo-1/

vim index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>前端教学</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    曾老湿*把*教学
</body>

</html>

vim style.css

body{
    background: blue;
    font-size: 50px;
}

vim 备忘录
老板好讨厌,只给我一天时间写页面


<!--初始化目录-->
MacBook-Pro:demo-1 driverzeng$ git init
Initialized empty Git repository in /Users/driverzeng/Desktop/demo-1/.git/

git添加项目

<!--添加可提交项目-->
MacBook-Pro:demo-1 driverzeng$ git add index.html
MacBook-Pro:demo-1 driverzeng$ git add style.css

如何让git不提交某个项目?

MacBook-Pro:demo-1 driverzeng$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   index.html
    new file:   style.css

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .gitignore

MacBook-Pro:demo-1 driverzeng$ git add .gitignore
MacBook-Pro:demo-1 driverzeng$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   .gitignore
    new file:   index.html
    new file:   style.css

git不能提交的项目

  • node_modules
  • .DS_Store
  • .idea
  • .vscode

git提交

MacBook-Pro:demo-1 driverzeng$ git commit -m "版本1"
[master (root-commit) 59b46c0] 版本1
 3 files changed, 21 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 index.html
 create mode 100644 style.css
 ```

----
<table><tr><td bgcolor=#000000><font color="white">git提交(verbose方式)</font></td></tr></table>
 
使用这种方式,可以帮我们回顾一下,刚才修改了什么代码
 
 ```bash
 MacBook-Pro:demo-1 driverzeng$ git add .
MacBook-Pro:demo-1 driverzeng$ git commit -v
[master e7445d2] 添加了两个标签
 1 file changed, 2 insertions(+), 1 deletion(-)
 ```
 
![-c](media/15766683065997/15766728671528.jpg)

![-c](media/15766683065997/15766729335968.jpg)

----
<table><tr><td bgcolor=#000000><font color="white">git log查看提交记录</font></td></tr></table>

```bash
MacBook-Pro:demo-1 driverzeng$ git log
commit e7445d2c3d3cc45d7025dfa24327a9033f9289fb (HEAD -> master)
Author: zls <123@qq.com>
Date:   Wed Dec 18 20:40:40 2019 +0800

    添加了两个标签

commit 59b46c0fcd6432debbc567bbf28e94ddfcee0396
Author: zls <123@qq.com>
Date:   Wed Dec 18 20:34:12 2019 +0800

    版本1

多次提交

修改代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>前端教学</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <h1>曾老湿*把*教学</h1>
    <h2>教你如何快速上手前端语言</h2>
    <img src="假装有图片.png" alt="假装有图片">
    <p>就这么地吧</p>
</body>

</html>


git版自如切换

MacBook-Pro:demo-1 driverzeng$ git log
commit 31e170a1fd7e95b564c50f327ee3f339aba703ac (HEAD -> master)
Author: zls <123@qq.com>
Date:   Wed Dec 18 20:51:19 2019 +0800

    加了宣传图和宣传语

commit e7445d2c3d3cc45d7025dfa24327a9033f9289fb
Author: zls <123@qq.com>
Date:   Wed Dec 18 20:40:40 2019 +0800

    添加了两个标签

commit 59b46c0fcd6432debbc567bbf28e94ddfcee0396
Author: zls <123@qq.com>
Date:   Wed Dec 18 20:34:12 2019 +0800

    版本1

#穿越回旧版本
MacBook-Pro:demo-1 driverzeng$ git reset --hard 59b46c
HEAD is now at 59b46c0 版本1

注意:git reset --hard 十分危险,会将没有commit但是已经add的代码,删除


git高端查看历史版本

#切换一次版本后,会发现,如下命令只能看见一个提交了
MacBook-Pro:demo-1 driverzeng$ git log

commit 59b46c0fcd6432debbc567bbf28e94ddfcee0396 (HEAD -> master)
Author: zls <123@qq.com>
Date:   Wed Dec 18 20:34:12 2019 +0800

    版本1


#使用git reflog可以看到所有版本,包括回滚的版本
MacBook-Pro:demo-1 driverzeng$ git reflog
59b46c0 (HEAD -> master) HEAD@{0}: reset: moving to 59b46c
31e170a HEAD@{1}: commit: 加了宣传图和宣传语
e7445d2 HEAD@{2}: commit: 添加了两个标签
59b46c0 (HEAD -> master) HEAD@{3}: commit (initial): 版本1

思考:场景二 CEO:给我写一个官网 程序猿:花了一天一夜,做出来了,请CEO过目 CEO:有点丑,再改改 CTO:我觉得不错,要是能做彩色的背景就好了 程序猿:MMP,你们的意见就不能统一一下么?


git branch分支

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>前端教学</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    曾老湿*把*教学

    CEO需求:如何快速学好前端
</body>

</html>

#添加代码
MacBook-Pro:demo-1 driverzeng$ git add .

#提交代码
MacBook-Pro:demo-1 driverzeng$ git commit -m 'v1'

#创建分支
MacBook-Pro:demo-1 driverzeng$ git branch fenzhi1

#按照老板的需求改代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>前端教学</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    曾老湿*把*教学

    CEO需求:如何快速学好前端
    修改一下老板的需求...
</body>

</html>

#添加项目
MacBook-Pro:demo-1 driverzeng$ git add .

#提交项目
MacBook-Pro:demo-1 driverzeng$ git commit -m 'ceo_branch1'

#切回CTO的项目需求
MacBook-Pro:demo-1 driverzeng$ git checkout fenzhi1
#添加项目
MacBook-Pro:demo-1 driverzeng$ git add .
#提交项目
MacBook-Pro:demo-1 driverzeng$ git commit -m 'cto_branch1'

#查看当前所在分支(*号在哪,就在哪个分支)
MacBook-Pro:demo-1 driverzeng$ git branch
* fenzhi1
  master

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


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

思考:场景三 CEO:昨天夜里我和CTO达成一致了,两个版本都要,我在上面,CTO在下面 程序猿:OK,那我合并一下


git merge分支合并

首先要到达需要保留的那个分支,毋庸置疑,一定是 master分支

#切换分支
MacBook-Pro:demo-1 driverzeng$ git checkout master
Switched to branch 'master'

#合并分支
MacBook-Pro:demo-1 driverzeng$ git merge fenzhi1
Auto-merging index.html


CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

如上结果,合并失败,因为两个分支有冲突的代码,同样都改了第n行代码...

#1.检查状态
MacBook-Pro:demo-1 driverzeng$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
    both modified:   index.html       //两边都改了 index.html

no changes added to commit (use "git add" and/or "git commit -a")


MacBook-Pro:demo-1 driverzeng$ git status -sb
## master
UU index.html

手动删除标记,可用vim

#添加项目
MacBook-Pro:demo-1 driverzeng$ git add .

#提交代码,本次提交,不需要加任何参数
MacBook-Pro:demo-1 driverzeng$ git commit
[master 2332d68] Merge branch 'fenzhi1'


删除分支

#查看分支
MacBook-Pro:demo-1 driverzeng$ git branch
  fenzhi1
* master

#删除分支
MacBook-Pro:demo-1 driverzeng$ git branch -d fenzhi1
Deleted branch fenzhi1 (was 7bc7d93).

#再次检查
MacBook-Pro:demo-1 driverzeng$ git branch
* master