美文网首页前端资源库Web前端之路让前端飞
从零开始学Git(1):基础配置与必须掌握的命令行

从零开始学Git(1):基础配置与必须掌握的命令行

作者: 多小啦 | 来源:发表于2017-04-11 23:41 被阅读116次

    01. 一般开发流程

    目前我们最常见的三类企业:外包类,生产制造类,互联网类
    前端开发人员进入到公司后,可能会面对的工作职责:要么是重新开始做项目,要么是维护现有的项目。

    从 0 到 1 的项目

    产品经理( PM 为代表)提出需求(一张A4纸)-》产品经理转换成需求文档,原型图(草图)
    美工(UI,前端)-》效果图(有的美工会给你切图)
    前后端就可以进行开发(会议,确定任务计划-哪些模块,每个模块任务周期deadline):
        -》确定数据接口(有哪些数据,数据格式是什么),前后端可以一起开始。
        -》后端拼命,前端没事儿。
    完成(半成品)-》测试
    提交上线:css,js文件合并及压缩,html文件压缩
    
    需求--》图--》后台设计--》前端设计--》成品
                        
    github项目举例:jason-server 解决前后端接口问题。
    管理项目流程软件:禅道, teambition
    

    维护的项目

    熟悉项目(拿到对应的文档,源代码)
    修改bug
    

    02. 代码管理工具

    可以管理代码的各个版本(只要做了备份,就可以随意地恢复到各个版本)
    在管理的过程中,不希望有过多的冗余。(差异备份,即备份不同的数据,配合原有数据,就可以恢复)
    代码管理需要符合团队开发。

    代码管理工具分类

    • 集中式管理:

        -》单台服务器管理代码,所有客户机,下载,修改上传代码
        -》代表软件 subversion(svn)
        -》缺点:服务器崩溃,所有数据都会丢失。因此服务器需要及时备份。
        -》公司本身就有服务器管理员--运维人员(每天或每周对服务器进行备份)
      
    • 分布式管理:

        -》分布是指分散到各个位置,具有位置的不同特征
        -》将各个数据的完整代码存储在每一个程序员的电脑中
        -》代表软件 git
        -》补充:git与github没有直接关系。git是一个代码管理工具,github是一个代码托管网站。
           github使用git来进行托管代码。
        -》国内软件 码云 git.oschina.net
        -》国内软件 码市 coding.net 这两年用得比较少
        -》公司内部一般都有自己的托管服务器(gitlab)
      

    03. git的发展

    git最早被创建出来是用来维护管理linux代码用的。
    用git就要学一点点linux的命令。

    04. 术语

    shell

    壳,贝壳,一般在计算机中指命令行。
    shell是一个中间层,用于接收用户的命令,通知系统底层进行操作,
    它是保护系统内核的程序,因此称为壳。
    命令行中输入命令,可以执行任何在桌面上实现的东西(命令行比GUI要强大)。
    

    bash

    典型的命令行的shell
    

    GUI shell

    图形化界面。(windows界面就是GUI shell)
    

    05. 基本的文件目录说明

    家目录

    一打开 bash,使用安装程序目录打开:有一个 ~ ,这个表示家目录(home)。
    凡是说的目录就是文件夹。
    在任意的目录下点右键,选择bash打开。打开的时候,默认就是在当前文件夹。

    在linux文件系统中,没有盘符的概念,所有的东西都在根目录下,bash程序模拟这个结构,虚拟了一个根目录,所有的盘符是这个根目录的子文件夹。

    桌面Desktop

    基本的linux命令

    pwd
    print working directory 打印当前的工作目录
    
    cd
    change directory 切换目录
    在切换目录时,用tab键,可以自动补全
    
    ls
    list 列表展示  ls-all展示详细信息
    
    clear
    清空
    
    --help
    获取帮助文档,苹果电脑用 man
    
    linux命令的格式
    $命令名[--选项][参数]
    在linux命令下,选项有的是带参数的,有的是不带参数的,参数与选项都是用一个或多个空格隔开。
    
    --all / -a
    在linux命令当中,选项有长名字选项和短名字选项。
    -》长名字选项都是两个连字符加一个单词组成,--all
    -》短名字都是一个连字符加一个字符组成
    -》多个选项的时候,允许连续使用短名字
    
    echo
    输出
    
    > >>
    重定向,将原本要输出的内容,定向到另一个--help>ls.help.txt
    
    > 重定向, 将原本要输出的内容, 定向到另外一个地方. 即, 将要输出的内容保存到文件中.
    >> 追加内容到指定文件
    注意:
    在使用这些命令的时候,都是有一个默认的条件,当前文件夹。
    > 重定向的时候,只需要写文件名,即可在当前文件保存数据了。
    如果需要执行文件夹,可以使用 绝对路径 和 相对路径。
    
    echo 123 > 1.txt 覆盖
    echo 123 >> 1.txt 追加
    

    06. 对文件夹的操作

    mkdir 文件夹名字

    创建文件夹 
    

    rmdir 文件夹的名字

    删除文件夹
    

    mv 原来的文件夹 后来的文件夹

    作用是移动文件夹,也可以重命名
    注: 在使用移动或改名的时候, 必须保证对应的文件夹不存在
    例如:
    mv  dir1 dir2
    此时如果 dir2 文件夹不存在, 指将 dir1 文件夹重命名为 dir2.
    如果 dir2 文件夹存在, 那么 表示将 dir1 文件夹移动到 dir2 中, 并且保留原有名字.
    mv  dir1 dir2/dir3
    此时如果 dir2 不存在, 则报错
    如果 dir2 存在, 而 dir3 不存在, 那么就是将 dir1 移到 dir2 中, 并重命名为 dir3
    如果 dir3 存在, 那么就表明将 dir1 移到 dir3 中, 并保留原有名字.
    

    07. 对文件的操作

    touch 文件名

    创建文件
    

    rm 文件名

    删除文件
    rm * -rf 不用提示,直接删除
    

    mv 文件名

    移动文件  mv *.js 目标文件夹(把所有js文件移动到目标文件)
    

    cp 文件名 文件名

    复制(copy)
    

    08. vi编辑器

    打开vi编辑器

    使用命令vi或vim
    使用vim 文件名,也可以打开vim,但是同时有了文件名。
    

    分析界面

    分成上下两部分:上面的是可视界面,或编辑界面; 下面是命令界面
    

    vi编辑器的状态

    命令状态( 默认 )和编辑状态
    
    进入编辑状态
    按下 i 或 a  i即input, a即append
    
    进入命令状态
    按下esc,进入命令状态
    
    退出
    在命令状态下键入 :q为退出,使用!强制执行
    
    保存
    :w文件名 表示写入另一个文件夹中
    
    保存退出
    :wq 文件名 保存退出
    

    09. git

    git是源代码管理工具,git用于追踪文件的变化与修改。
    基本使用:git命令,打印出所有的可选子命令
    git help --all 打印所有的详细命令

    git的操作步骤(思想)

    1. 使用git之前要先初始化“仓库” git init
    2. 查看跟踪状态的命令 git status
    3. 将文件加到仓库中(使git追踪这个文件) git add 文件名
    4. 提交(文件添加以后,只是存储到缓存中了,并没有存储到仓库里,提交以后,就存储到仓库中了)git commit -m/--message "提交的信息" --author=“用户名<邮箱>”
    5. 可以修改文件,再提交
    6. 查看提交日志 git log / git log --oneline

    10. 配置用户名与邮箱

    将用户名与邮箱配置到计算机中,那么每次提交的时候就不需要再配置了。

    配置的级别(3种)

    局部范围(只在当前项目中有效,会在.git这个文件夹中创建配置文件)
    git config user.name "zengchen"
    git config user.email "zengchen98@163.com"
    
    当前用户范围(全局范围)
    git config --global user.name"..."
    git config --global user.email "zengchen98@163.com"
    
    系统级范围(非win)一般不要用
    git config --system user.name"..."
    git config --system user.email "zengchen98@163.com"
    

    11. git 文件夹结构说明

    一旦使用git开始管理我们的代码,我们的文件夹就分成三个部分

    1. 工作区

    2. 缓冲区(索引)

    3. 仓库

    其中,缓冲区与仓库就在.git目录中。
    每次在编写代码的时候,都是在工作区中实行。
    一旦对文件执行add,即 将文件存储到了缓冲区中(已追踪,未提交)
    我们可以使用commit提交,使得文件存储到仓库里
    
    如果说我们希望恢复修改,可以使用命令 git reset --hard HEAD
    

    12. 回到已备份的版本中

    -》git reset --hard SHA1 就可以回到指定版本

    使用git log查看SHA1 值 至少取前7个数的值

    恢复:git reflog 获取想要的SHA值

    -》恢复的三个级别
    soft:只会恢复仓库中的数据结构,缓冲区与工作区不变
    mixed(默认):恢复仓库中的数据与缓冲区中的数据,而工作区不变
    hard:强制将工作区,缓冲区,仓库全部恢复。

    13. 提交日志的书写规范

    就是在git commit -m的时候,在里面书写的内容
    -》提交策略:在提交的时候,最好遵循原子性操作,即一个完整的功能实现或bug处理完成以后再提交。
    -》日志书写规则
    第一行,用最简单的语句概括所做事情
    第二行,空一行
    第三行,开始详细地说明细节部分

    例如:
    实现基本的首页功能,处理样式与交互
    
    文件结构为:
        src/index.html
        src/css/main.css
        scr/js/app.js
    ...
    ...
    
    这种编辑无法使用 -m 来实现,不使用 -m,那么会自动开启进入到vim中,编辑完成后保存退出即可。
    
    git add. (将当前目录和全部子目录文件add了)
    

    查看单行日志内容

    git log --pretty=short  或 --oneline
    

    具体查看某一个日志的信息

    git show SHA1值 (看某一个文件的详细内容)

    相关文章

      网友评论

      • LinnChu:Mark
      • 李程鹏:项目管理那个应该是禅道吧,不是神道。
        多小啦: @李程鹏 多谢指正,已经修改🙂
      • 6bc9cc6e419d:vim强制退出 :q ! 😅比如当写错的时候,不保存退出哦😂😂

      本文标题:从零开始学Git(1):基础配置与必须掌握的命令行

      本文链接:https://www.haomeiwen.com/subject/epdpattx.html