博客

  • Windows下GO开发环境配置

     

    1、下载

    go的下载地址: https://golang.google.cn/dl/

    默认安装至C:\Go

    查看版本,控制台中:go version

    2、环境变量

    (1)添加系统变量GOROOT,GO安装的根目录,值为C:\Go\

    (2)添加系统变量GOPATH,GO的工作空间,用户代码目录,

    值为D:\GOPATH(我本机的设置)

    查看go环境配置go env,

    发现GOPATH的值并不是我设置的D:\GOPATH。

    删除用户变量中的GOPATH变量,

    重新打开cmd,

    查看go环境配置go env,

    现在GOPATH的值已经是我设置的D:\GOPATH。

    工作空间包含三个子目录:

    src:包含 Go 源文件(例如:.go、.c、.h、.s 等)

    pkg:包含包对象,编译好的库文件(例如:.a)

    bin:包含可执行命令(为了方便,可以把此目录加入到Windows的Path变量中,在系统环境变量Path后追加 %GOPATH%\bin)

    (3)添加系统变量GOBIN,Go的二进制文件存放目录,值为%GOPATH%\bin。

    (4)在系统变量Path之后添加%GOBIN%

     
  • PhpStorm:PhpStorm 插件 In Laravel

     

    Php Inspections,它其一的功能是会提示你哪些过时的写法,然后点击自动帮您修正
    Chinese ​(Simplified)​ Language Pack / 中文语言包,JetBrains 出品
    Tabnine AI Code Completion,代码补全工具
    any-rule,常用正则大全,支持自定义正则
    CamelCae,大小写,下划线,驼峰,首字母大写等转化工具
    Rainbow Brackets,彩虹括号,各种鲜明颜色的括号
    GitHub Copilot,AI 辅助写代码,收费
    Idea Vim,Vim 语法

     

  • MySQL:[Err] 1292 – Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

     

    问题



    用navicat导入数据时,报错:

    [Err] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'CREATE_TIME' at row 1

     

    在这里插入图片描述



     

    原因

    这是因为当前的MySQL不支持datetime为0的情况。



     

    解决

    修改sql_mode:

    sql_mode:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。

     

    全局sql_mode

    查看全局sql_mode:

    select @@global.sql_mode;

    可以看到,O_ZERO_DATE、NO_ZERO_IN_DATE,把这两个设置去掉。

    在这里插入图片描述



    修改全局sql_mode:

    set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

    在这里插入图片描述

     

    当前sql_mode

    查看当前sql_mode:

    select @@sql_mode;

    在这里插入图片描述修改当前sql_mode:

    set @@sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

    在这里插入图片描述

     

    OK,问题解决。



    在这里插入图片描述

     

    上面虽然也可以解决我们的问题,但是一旦MySQL重启,就必须重新设置一次全局和当前的sql_mode。

     

    修改sql_mode配置

    在MySQL配置文件mysql.ini中修改sql_mode配置,就不需要每次重启MySQL就得重新设置sql_mode了。

    • 关闭MySQL
    net stop MySQL57
    • 修改MySQL配置

      在my.ini的[mysqld]下添加:
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    • 启动MySQL
    net start MySQL57

     



    END!
  • git合并dev分支到master

    假如我们现在在dev分支上,刚开发完项目,执行了下列命令

    git add .
    git commit -m ‘dev'
    git push -u origin dev
    

    然后我们要把dev分支的代码合并到master分支上 该如何?

    首先切换到master分支上

    git checkout master
    

    如果是多人开发的话 需要把远程master上的代码pull下来

    git pull origin master
    

    如果是自己一个开发就没有必要了,为了保险期间还是pull

    然后我们把dev分支的代码合并到master上

    git merge dev
    

    然后查看状态

    git status
    

    On branch master
    Your branch is ahead of 'origin/master' by 12 commits.
    (use "git push" to publish your local commits)
    nothing to commit, working tree clean
    

    上面的意思就是你有12个commit,需要push到远程master上

    执行下面命令即可

    git push origin master
    

    附:Git操作-葵花宝典

  • composer查看源,修改源

    1,查看源composer config -g -l
    2,修改源:配置只在当前项目生效
    composer config repo.packagist composer https://mirrors.aliyun.com/composer/
    取消当前项目配置
    composer config –unset repos.packagist
    3,修改源:配置全局生效
    composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
    取消全局配置
    composer config -g –unset repos.packagist
    ————————————————
    版权声明:本文为CSDN博主「断线的纸鸢M」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_44245595/article/details/113391144

  • Laravel 更换内置服务器监听端口

    正常情况下,使用 php artisan serve 启动 Laravel 内置服务器,将会监听在 localhost 的 8000 端口上

    php artisan serve

    Laravel development server started on http://localhost:8000

    如果不是8000,这个时候最好先看一下 8000 端口有没有被占用

    netstat -ano |findstr "8000" 发现并没有被别的应用占用,所以更改回 8000

    更换监听的接口地址或端口号,可以使用 –host 参数与 –port 参数

    php artisan serve –host=127.0.0.1 –port=8888
    ————————————————
    版权声明:本文为CSDN博主「weixin_37222169」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_37222169/article/details/122623386

  • 搭建 GitLab

    操作场景

    GitLab 是使用 Ruby 开发的开源版本管理系统,以 Git 作为代码管理工具并实现自托管的 Git 项目仓库,可通过 Web 界面访问公开或私人的项目。本文介绍如何在腾讯云云服务器上安装并使用 GitLab。

    示例版本

    • GitLab:社区版 14.6.2
    • 本文使用的云服务器配置如下:

      • vCPU:2核
      • 内存:4GB
      • Linux 操作系统:以 CentOS 8.2 及 CentOS 7.9 为例

    前提条件

    操作步骤

    安装 GitLab

    1. 登录实例,详情请参见 使用标准方式登录 Linux 实例(推荐)
    2. 对应实际使用的操作系统执行以下命令,安装依赖包。

      yum install -y curl policycoreutils-python openssh-server
      

    3. 依次执行以下命令,设置 SSH 开机自启动并启动 SSH 服务。

      systemctl enable sshd

      systemctl start sshd

    4. 执行以下命令,安装 Postfix。

      yum install -y postfix

    5. 执行以下命令,设置 Postfix 服务开机自启动。

      systemctl enable postfix
      

    6. 执行以下命令,打开 Postfix 的配置文件 main.cf。

      vim /etc/postfix/main.cf
      

    7. i 进入编辑模式,删除 inet_interfaces = all 前的 #,在 inet_interfaces = localhost 前加上 #。修改完成后如下图所示:
    8. Esc 并输入 :wq 保存修改并退出文件。
    9. 执行以下命令,启动 Postfix。

      systemctl start postfix
      

    10. 执行以下命令,添加 GitLab 软件包仓库。

       curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
      

    11. 执行以下命令,安装 GitLab。

      sudo EXTERNAL_URL="实例公网 IP 地址" yum install -y gitlab-ce
      

      如何获取实例公网 IP,请参见 获取公网 IP 地址

    12. 在本地浏览器中访问已获取的公网 IP,返回页面如下所示,则表示已成功安装 GitLab。

    设置管理员帐户密码

    1. 获取管理员帐户默认密码。
      登录实例,并执行以下命令获取管理员 root 帐户登录密码。

      cat /etc/gitlab/initial_root_password

      获取如下图所示密码:

    2. 登录 GitLab。
      在本地浏览器中访问云服务器的公网 IP,进入 GitLab 登录界面。使用 root 帐户及已获取的登录密码进行登录。
    3. 修改管理员帐户密码。
      由于保存默认密码的文件将在首次配置运行24小时后自动删除,请尽快修改 root 帐户登录密码。

      1. 选择页面右上角的用户头像,在弹出菜单中选择 Perferences
      2. 在 “User Settings” 页面中,选择左侧导航栏的 Password
      3. 在页面中输入目前使用密码,新密码及确认新密码后,单击 Save Password 即可。如下图所示:

    创建项目

    1. 使用 root 帐户及已设置的登录密码进行登录。
    2. 根据页面指引创建私人项目,本文以 test 为例。如下图所示:
    3. 成功创建项目后,单击页面上方提示中的 Add SSH Key
    4. 进入 “SSH Keys” 页面,按照以下步骤添加 SSH Key:

      1. 通过 获取密钥 步骤,获取需纳入项目管理 PC 的密钥信息,粘贴在 “Key” 中。
      2. 在 “Title” 中自定义命名该密钥。
      3. 单击 Add key 即可添加密钥。如下图所示:

        如下图所示则表示密钥添加成功:
    5. 返回项目首页,单击 clone 记录项目地址。如下图所示:

    克隆项目

    1. 在已纳入管理的 PC 上执行以下命令,配置使用 Git 仓库的人员姓名。

      git config –global user.name "username"

    2. 执行以下命令,配置使用 Git 仓库的人员邮箱。
      git config –global user.email "xxx@example.com"
    3. 执行以下命令,克隆项目。其中“项目地址”请替换为已在 步骤5 中获取的项目地址。

      git clone “项目地址”

      克隆项目成功后,会在本地生成同名目录且包含项目中所有文件。

    上传文件

    1. 执行以下命令,进入项目目录。

      cd test/

    2. 执行以下命令,创建需上传至 GitLab 的目标文件。本文以 test.sh 为例。

      echo "test" > test.sh
      

    3. 执行以下命令,将 test.sh 文件加入索引中。

      git add test.sh

    4. 执行以下命令,将 test.sh 提交至本地仓库。

      git commit -m "test.sh"
      

    5. 执行以下命令,将 test.sh 同步至 GitLab 服务器。

      git push

      返回 test 项目页面,即可查看文件已成功上传。如图所示:

    相关操作

    获取密钥

    1. 在需要纳入项目管理的 PC 上执行以下命令,安装 Git。

      yum install -y git

    2. 执行以下命令,生成密钥文件 .ssh/id_rsa。生成密钥文件步骤中请按 Enter 保持默认设置。

      ssh-keygen

    3. 执行以下命令,查看并记录密钥信息。

      cat .ssh/id_rsa.pub

  • dos命令与linux命令的区别是什么

    dos命令与linux命令的区别:1、dos使用copy命令复制文件,linux使用cp命令复制文件;2、dos使用move命令移动文件,linux使用mv命令移动文件;3、dos使用del命令删除文件,linux使用rm命令删除文件。

    本教程操作环境:linux7.3系统、Dell G3电脑。

    dos命令与linux命令的区别是什么

    简单Dos命令与linux命令的区别:

    功能

    Dos

    Linux

    复制文件

    copy

    cp

    移动文件

    move

    mv

    列举文件

    dir

    ls

    清除屏幕

    cls

    clear

    退出

    exit

    exit

    显示修改日期

    date

    date

    删除文件

    del

    rm

    回响信息到屏幕

    echo

    echo

    用编辑器编辑文件

    edit

    vi

    比较文件内容

    fc

    diff

    在文件中查找字符串

    find

    grep

    显示命令帮助

    命令/?

    man 命令

    创建目录

    mkdir

    mkdir

    删除目录

    rd

    rmdir

    目录更名

    move

    mv

    拷贝目录

    xcopy

    copy

    查看文件

    more

    less

    重命名文件

    ren

    mv

    切换目录

    cd

    cd

    显示时间

    time

    date

    显示已被使用的内存

    mem

    free

    在屏幕打印文件内容

    type

    cat

    示例如下:

    dos

    copy,中文含义为“复制”,一个很容易见名知意的命令,它的作用是复制文件,用法十分简单:copy 源文件 目的路径。

    假设,你需要把d:\test\test.txt这个文件复制到D盘根目录下,那么,使用 copy d:\test\test.txt d:\ 就可以轻易办到。

      当然,这是最简单的情形,在实际使用中,还是会碰到十分复杂的情况的。

      如果D盘根目录下已经存在了一个名为test.txt的文件,那么,复制过去的时候,copy命令就会提示你是覆盖原文件、是放弃复制还是覆盖所有文件。如果你在批量复制的时候,一概覆盖原文件,那么,一个一个地选择十分麻烦,这个时候,你可以使用不加提示就覆盖原文件的参数 /y (相当于自动选择了Yes选项),完整的命令为 copy /y d:\test\test.txt d:\ 。

      如果复制的时候,你还需要把源文件改个名,比如把test.txt改为1.txt的时候,可以直接使用:copy d:\test\test.txt d:\1.txt 这样的命令,也就是说,在指定目的路径的时候,直接指定文件名,那么,新的文件名就是源文件复制之后的名字。

      如果要复制的路径带有空格、&等特殊符号的时候,请使用引号把这些特殊字符括起来,比如: copy "d:\test abc\test.txt" "d:\t&est"

      copy命令除了“复制”文件的功能外,还有一个绝活:合并多个文件为一个文件,具体的格式为:copy 文件1+文件2+文件3+…… 目的路径\新文件名 。例如:copy d:\test.txt+d:\abc.txt d:\test\test.txt,那么,就把D盘根目录下的test.txt和abc.txt两个文件的内容合并为test.txt,并保存到d:\test目录下。

      copy 还有一些参数,但是常用的就上面的用法,更多的用法请在命令行窗口中使用 copy /? 来查询,很容易上手的。

      必须注意的是,copy只能复制文件,对于文件夹的复制,则需要另请高明,动用xcopy来复制。xcopy是copy的高级版本,有更丰富的参数,能实现更加复杂的功能,通吃文件和文件夹的复制,以后将另行介绍,在这里就不展开讲解了。

    linux

    Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。

    语法

    1

    cp [options] source dest

    1

    cp [options] source... directory

    参数说明:

    • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

    • -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。

    • -f:覆盖已经存在的目标文件而不给出提示。

    • -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。

    • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

    • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

    • -l:不复制文件,只是生成链接文件。

  • git常用的命令是什么

    git常用的命令是:1、“git clone”克隆代码;2、git add将本地代码全部提交;3、commit命令;4、git log查看git合入的记录;5、git pull从服务器重新拉代码;6、git status查看本地代码状态;7、git branch命令可以看到当前工作分支。8、push命令;9、checkout命令;10、fetch命令,下载远程仓库的所有变动。11、“git tag”查看标签;12、“git branch -a”查看远程分支。

    Git有很多命令,如果想要完全记住是很难的,一般来说我们只要记住下图中的六个命令即可。

    78952a3d9ed12b0ab9dfd13ca4c512f.png

    Git 命令清单及个别专用名词的译名如下:

    Workspace:工作区

    Index / Stage:暂存区

    Repository:仓库区(或本地仓库)

    Remote:远程仓库

    一、新建代码库

    1

    2

    3

    4

    5

    6

    7

    8

    # 在当前目录新建一个Git代码库

    $ git init

      

    # 新建一个目录,将其初始化为Git代码库

    $ git init [project-name]

      

    # 下载一个项目和它的整个代码历史

    $ git clone [url]

    二、配置

    Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    # 显示当前的Git配置

    $ git config --list

      

    # 编辑Git配置文件

    $ git config -e [--global]

      

    # 设置提交代码时的用户信息

    $ git config [--global] user.name "[name]"

    $ git config [--global] user.email "[email address]"

    三、增加/删除文件

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    # 添加指定文件到暂存区

    $ git add [file1] [file2] ...

      

    # 添加指定目录到暂存区,包括子目录

    $ git add [dir]

      

    # 添加当前目录的所有文件到暂存区

    $ git add .

      

    # 添加每个变化前,都会要求确认

    # 对于同一个文件的多处变化,可以实现分次提交

    $ git add -p

      

    # 删除工作区文件,并且将这次删除放入暂存区

    $ git rm [file1] [file2] ...

      

    # 停止追踪指定文件,但该文件会保留在工作区

    $ git rm --cached [file]

      

    # 改名文件,并且将这个改名放入暂存区

    $ git mv [file-original] [file-renamed]

    四、代码提交

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    # 提交暂存区到仓库区

    $ git commit -m [message]

      

    # 提交暂存区的指定文件到仓库区

    $ git commit [file1] [file2] ... -m [message]

      

    # 提交工作区自上次commit之后的变化,直接到仓库区

    $ git commit -a

      

    # 提交时显示所有diff信息

    $ git commit -v

      

    # 使用一次新的commit,替代上一次提交

    # 如果代码没有任何新变化,则用来改写上一次commit的提交信息

    $ git commit --amend -m [message]

      

    # 重做上一次commit,并包括指定文件的新变化

    $ git commit --amend [file1] [file2] ...

    五、分支

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    # 列出所有本地分支

    $ git branch

      

    # 列出所有远程分支

    $ git branch -r

      

    # 列出所有本地分支和远程分支

    $ git branch -a

      

    # 新建一个分支,但依然停留在当前分支

    $ git branch [branch-name]

      

    # 新建一个分支,并切换到该分支

    $ git checkout -b [branch]

      

    # 新建一个分支,指向指定commit

    $ git branch [branch] [commit]

      

    # 新建一个分支,与指定的远程分支建立追踪关系

    $ git branch --track [branch] [remote-branch]

      

    # 切换到指定分支,并更新工作区

    $ git checkout [branch-name]

      

    # 切换到上一个分支

    $ git checkout -

      

    # 建立追踪关系,在现有分支与指定的远程分支之间

    $ git branch --set-upstream [branch] [remote-branch]

      

    # 合并指定分支到当前分支

    $ git merge [branch]

      

    # 选择一个commit,合并进当前分支

    $ git cherry-pick [commit]

      

    # 删除分支

    $ git branch -d [branch-name]

      

    # 删除远程分支

    $ git push origin --delete [branch-name]

    $ git branch -dr [remote/branch]

    六、标签

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    # 列出所有tag

    $ git tag

      

    # 新建一个tag在当前commit

    $ git tag [tag]

      

    # 新建一个tag在指定commit

    $ git tag [tag] [commit]

      

    # 删除本地tag

    $ git tag -d [tag]

      

    # 删除远程tag

    $ git push origin :refs/tags/[tagName]

      

    # 查看tag信息

    $ git show [tag]

      

    # 提交指定tag

    $ git push [remote] [tag]

      

    # 提交所有tag

    $ git push [remote] --tags

      

    # 新建一个分支,指向某个tag

    $ git checkout -b [branch] [tag]

    七、查看信息

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    # 显示有变更的文件

    $ git status

      

    # 显示当前分支的版本历史

    $ git log

      

    # 显示commit历史,以及每次commit发生变更的文件

    $ git log --stat

      

    # 搜索提交历史,根据关键词

    $ git log -S [keyword]

      

    # 显示某个commit之后的所有变动,每个commit占据一行

    $ git log [tag] HEAD --pretty=format:%s

      

    # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件

    $ git log [tag] HEAD --grep feature

      

    # 显示某个文件的版本历史,包括文件改名

    $ git log --follow [file]

    $ git whatchanged [file]

      

    # 显示指定文件相关的每一次diff

    $ git log -p [file]

      

    # 显示过去5次提交

    $ git log -5 --pretty --oneline

      

    # 显示所有提交过的用户,按提交次数排序

    $ git shortlog -sn

      

    # 显示指定文件是什么人在什么时间修改过

    $ git blame [file]

      

    # 显示暂存区和工作区的差异

    $ git diff

      

    # 显示暂存区和上一个commit的差异

    $ git diff --cached [file]

      

    # 显示工作区与当前分支最新commit之间的差异

    $ git diff HEAD

      

    # 显示两次提交之间的差异

    $ git diff [first-branch]...[second-branch]

      

    # 显示今天你写了多少行代码

    $ git diff --shortstat "@{0 day ago}"

      

    # 显示某次提交的元数据和内容变化

    $ git show [commit]

      

    # 显示某次提交发生变化的文件

    $ git show --name-only [commit]

      

    # 显示某次提交时,某个文件的内容

    $ git show [commit]:[filename]

      

    # 显示当前分支的最近几次提交

    $ git reflog

    八、远程同步

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    # 下载远程仓库的所有变动

    $ git fetch [remote]

      

    # 显示所有远程仓库

    $ git remote -v

      

    # 显示某个远程仓库的信息

    $ git remote show [remote]

      

    # 增加一个新的远程仓库,并命名

    $ git remote add [shortname] [url]

      

    # 取回远程仓库的变化,并与本地分支合并

    $ git pull [remote] [branch]

      

    # 上传本地指定分支到远程仓库

    $ git push [remote] [branch]

      

    # 强行推送当前分支到远程仓库,即使有冲突

    $ git push [remote] --force

      

    # 推送所有分支到远程仓库

    $ git push [remote] --all

    九、撤销

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    # 恢复暂存区的指定文件到工作区

    $ git checkout [file]

      

    # 恢复某个commit的指定文件到暂存区和工作区

    $ git checkout [commit] [file]

      

    # 恢复暂存区的所有文件到工作区

    $ git checkout .

      

    # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变

    $ git reset [file]

      

    # 重置暂存区与工作区,与上一次commit保持一致

    $ git reset --hard

      

    # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

    $ git reset [commit]

      

    # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

    $ git reset --hard [commit]

      

    # 重置当前HEAD为指定commit,但保持暂存区和工作区不变

    $ git reset --keep [commit]

      

    # 新建一个commit,用来撤销指定commit

    # 后者的所有变化都将被前者抵消,并且应用到当前分支

    $ git revert [commit]

      

    # 暂时将未提交的变化移除,稍后再移入

    $ git stash

    $ git stash pop

    十、其他

    1

    2

    # 生成一个可供发布的压缩包

    $ git archive

     

  • Git 命令速查表

     

    1、常用的Git命令

     

    命令

    简要说明

    git add

    添加至暂存区

    git add–interactive

    交互式添加

    git apply

    应用补丁

    git am

    应用邮件格式补丁

    git annotate

    同义词,等同于 git blame

    git archive

    文件归档打包

    git bisect

    二分查找

    git blame

    文件逐行追溯

    git branch

    分支管理

    git cat-file

    版本库对象研究工具

    git checkout

    检出到工作区、切换或创建分支

    git cherry-pick

    提交拣选

    git citool

    图形化提交,相当于 git gui 命令

    git clean

    清除工作区未跟踪文件

    git clone

    克隆版本库

    git commit

    提交

    git config

    查询和修改配置

    git describe

    通过里程碑直观地显示提交ID

    git diff

    差异比较

    git difftool

    调用图形化差异比较工具

    git fetch

    获取远程版本库的提交

    git format-patch

    创建邮件格式的补丁文件。参见 git am 命令

    git grep

    文件内容搜索定位工具

    git gui

    基于Tcl/Tk的图形化工具,侧重提交等操作

    git help

    帮助

    git init

    版本库初始化

    git init-db*

    同义词,等同于 git init

    git log

    显示提交日志

    git merge

    分支合并

    git mergetool

    图形化冲突解决

    git mv

    重命名

    git pull

    拉回远程版本库的提交

    git push

    推送至远程版本库

    git rebase

    分支变基

    git rebase–interactive

    交互式分支变基

    git reflog

    分支等引用变更记录管理

    git remote

    远程版本库管理

    git repo-config*

    同义词,等同于 git config

    git reset

    重置改变分支“游标”指向

    git rev-parse

    将各种引用表示法转换为哈希值等

    git revert

    反转提交

    git rm

    删除文件

    git show

    显示各种类型的对象

    git stage*

    同义词,等同于 git add

    git stash

    保存和恢复进度

    git status

    显示工作区文件状态

    git tag

    里程碑管理

     

    2、对象库操作相关命令

     

    命令

    简要说明

    git commit-tree

    从树对象创建提交

    git hash-object

    从标准输入或文件计算哈希值或创建对象

    git ls-files

    显示工作区和暂存区文件

    git ls-tree

    显示树对象包含的文件

    git mktag

    读取标准输入创建一个里程碑对象

    git mktree

    读取标准输入创建一个树对象

    git read-tree

    读取树对象到暂存区

    git update-index

    工作区内容注册到暂存区及暂存区管理

    git unpack-file

    创建临时文件包含指定 blob 的内容

    git write-tree

    从暂存区创建一个树对象

     

    3、引用操作相关命令

     

    命令

    简要说明

    git check-ref-format

    检查引用名称是否符合规范

    git for-each-ref

    引用迭代器,用于shell编程

    git ls-remote

    显示远程版本库的引用

    git name-rev

    将提交ID显示为友好名称

    git peek-remote*

    过时命令,请使用 git ls-remote

    git rev-list

    显示版本范围

    git show-branch

    显示分支列表及拓扑关系

    git show-ref

    显示本地引用

    git symbolic-ref

    显示或者设置符号引用

    git update-ref

    更新引用的指向

    git verify-tag

    校验 GPG 签名的Tag

     

    4、版本库管理相关命令

     

    命令

    简要说明

    git count-objects

    显示松散对象的数量和磁盘占用

    git filter-branch

    版本库重构

    git fsck

    对象库完整性检查

    git fsck-objects*

    同义词,等同于 git fsck

    git gc

    版本库存储优化

    git index-pack

    从打包文件创建对应的索引文件

    git lost-found*

    过时,请使用 git fsck –lost-found 命令

    git pack-objects

    从标准输入读入对象ID,打包到文件

    git pack-redundant

    查找多余的 pack 文件

    git pack-refs

    将引用打包到 .git/packed-refs 文件中

    git prune

    从对象库删除过期对象

    git prune-packed

    将已经打包的松散对象删除

    git relink

    为本地版本库中相同的对象建立硬连接

    git repack

    将版本库未打包的松散对象打包

    git show-index

    读取包的索引文件,显示打包文件中的内容

    git unpack-objects

    从打包文件释放文件

    git verify-pack

    校验对象库打包文件

     

    5、数据传输相关命令

     

    命令

    简要说明

     

    git fetch-pack

    执行 git fetch 或 git pull 命令时在本地执行此命令,用于从其他版本库获取缺失的对象

    git receive-pack

    执行 git push 命令时在远程执行的命令,用于接受推送的数据

    git send-pack

    执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据

    git upload-archive

    执行 git archive –remote 命令基于远程版本库创建归档时,远程版本库执行此命令传送归档

    git upload-pack

    执行 git fetch 或 git pull 命令时在远程执行此命令,将对象打包、上传

     

    6、邮件相关命令

     

    命令

    简要说明

    git imap-send

    将补丁通过 IMAP 发送

    git mailinfo

    从邮件导出提交说明和补丁

    git mailsplit

    将 mbox 或 Maildir 格式邮箱中邮件逐一提取为文件

    git request-pull

    创建包含提交间差异和执行PULL操作地址的信息

    git send-email

    发送邮件

     

    7、协议相关命令

     

    命令

    简要说明

    git daemon

    实现Git协议

    git http-backend

    实现HTTP协议的CGI程序,支持智能HTTP协议

    git instaweb

    即时启动浏览器通过 gitweb 浏览当前版本库

    git shell

    受限制的shell,提供仅执行Git命令的SSH访问

    git update-server-info

    更新哑协议需要的辅助文件

    git http-fetch

    通过HTTP协议获取版本库

    git http-push

    通过HTTP/DAV协议推送

    git remote-ext

    由Git命令调用,通过外部命令提供扩展协议支持

    git remote-fd

    由Git命令调用,使用文件描述符作为协议接口

    git remote-ftp

    由Git命令调用,提供对FTP协议的支持

    git remote-ftps

    由Git命令调用,提供对FTPS协议的支持

    git remote-http

    由Git命令调用,提供对HTTP协议的支持

    git remote-https

    由Git命令调用,提供对HTTPS协议的支持

    git remote-testgit

    协议扩展示例脚本

     

    8、版本库转换和交互相关命令

     

    命令

    简要说明

    git archimport

    导入Arch版本库到Git

    git bundle

    提交打包和解包,以便在不同版本库间传递

    git cvsexportcommit

    将Git的一个提交作为一个CVS检出

    git cvsimport

    导入CVS版本库到Git。或者使用 cvs2git

    git cvsserver

    Git的CVS协议模拟器,可供CVS命令访问Git版本库

    git fast-export

    将提交导出为 git-fast-import 格式

    git fast-import

    其他版本库迁移至Git的通用工具

    git svn

    Git 作为前端操作 Subversion

     

    9、合并相关的辅助命令

     

    命令

    简要说明

    git merge-base

    供其他脚本调用,找到两个或多个提交最近的共同祖先

    git merge-file

    针对文件的两个不同版本执行三向文件合并

    git merge-index

    对index中的冲突文件调用指定的冲突解决工具

    git merge-octopus

    合并两个以上分支。参见 git merge 的octopus合并策略

    git merge-one-file

    由 git merge-index 调用的标准辅助程序

    git merge-ours

    合并使用本地版本,抛弃他人版本。参见 git merge 的ours合并策略

    git merge-recursive

    针对两个分支的三向合并。参见 git merge 的recursive合并策略

    git merge-resolve

    针对两个分支的三向合并。参见 git merge 的resolve合并策略

    git merge-subtree

    子树合并。参见 git merge 的 subtree 合并策略

    git merge-tree

    显式三向合并结果,不改变暂存区

    git fmt-merge-msg

    供执行合并操作的脚本调用,用于创建一个合并提交说明

    git rerere

    重用所记录的冲突解决方案

     

    10、 杂项

     

    命令

    简要说明

    git bisect–helper

    由 git bisect 命令调用,确认二分查找进度

    git check-attr

    显示某个文件是否设置了某个属性

    git checkout-index

    从暂存区拷贝文件至工作区

    git cherry

    查找没有合并到上游的提交

    git diff-files

    比较暂存区和工作区,相当于 git diff –raw

    git diff-index

    比较暂存区和版本库,相当于 git diff –cached –raw

    git diff-tree

    比较两个树对象,相当于 git diff –raw A B

    git difftool–helper

    由 git difftool 命令调用,默认要使用的差异比较工具

    git get-tar-commit-id

    从 git archive 创建的 tar 包中提取提交ID

    git gui–askpass

    命令 git gui 的获取用户口令输入界面

    git notes

    提交评论管理

    git patch-id

    补丁过滤行号和空白字符后生成补丁唯一ID

    git quiltimport

    将Quilt补丁列表应用到当前分支

    git replace

    提交替换

    git shortlog

    对 git log 的汇总输出,适合于产品发布说明

    git stripspace

    删除空行,供其他脚本调用

    git submodule

    子模组管理

    git tar-tree

    过时命令,请使用 git archive

    git var

    显示 Git 环境变量

    git web–browse

    启动浏览器以查看目录或文件

    git whatchanged

    显示提交历史及每次提交的改动

    git-mergetool–lib

    包含于其他脚本中,提供合并/差异比较工具的选择和执行

    git-parse-remote

    包含于其他脚本中,提供操作远程版本库的函数

    git-sh-setup

    包含于其他脚本中,提供 shell 编程的函数库