来自 计算机编程 2019-12-29 05:22 的文章
当前位置: 澳门威尼斯人平台 > 计算机编程 > 正文

PHP的命令行命令使用指南

当用户打开php页面时,服务端便执行PHP的命令并将执行结果发送至用户的浏览器中,这类似于ASP和CoildFusion,PHP可以运行在WINDOWS和多种版本的UNIX上。除了能够操作您的页面外,PHP还能发送HTTP的标题。

题引:

文章基于Mac版本的git操作.

你可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库,集成各种 外部库来做用PDF文档解析XML的任何事情。那你还知道可以用php的强大功能做点别的东西吗? 在以独立的cgi方式运行时,需要一个php可执行程序,他有很多命令行参数的,有些可以用作很好玩的用途,下面是全部的php命令行参数,其中[]表示 可有可无的,表是一定要的。

既为了总结自己在Git使用上的实践经验,也为了给有同样Git使用需求的伙伴们提供借鉴。


用法 php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args...]} -q 安静模式。不输出HTTP头。 -s 将php程序文件用转化为彩色格式的HTML(比如保留字用绿色,函数和变量为蓝色,注释为黄色而字串则是红色等等。

本文Git使用方式为命令行。相信对Git有所了解的朋友,一定清楚,命令行在Git的使用中是最原子化的,也是最容易在使用过程中加深对Git原理理解的方式。任何Git的GUI操作工具,都是Git相关操作命令的子集。

关于 git.

-f 读入并解释指定的文件。

什么是Git?Git和SVN的区别?使用Git有哪些好处?Git的冲突原理?怎么生成Git公钥私钥?这些问题不在本文讨论范围之内,有如上需求,请Google或者百度。

  • 之前一直使用SVN, 开发个人项目时会使用GitHub Desktop, 笔者基于这一年里的git使用体会为有需要的同学们提供一些建议.
  • 对笔者而言, SVN更像是一个文件共享工具, 整个团队, 包括产品原型, UI切图和代码等等的共享工具. git更适合于单纯代码方面的管理, 包括个人的代码开发管理和几个人之间的团队协作.
  • git工具的使用很简单, 因为平常开发用得上的语法很少, 不过对于完全不了解的同学, 初次使用还是会觉得很陌生.

-c 在中读入php.ini文件

现在,我默认你已经拥有了Git的命令行终端工具(无论是Mac自带的终端,Windows下的git-bash终端,还是其它包含Linux使用方式的终端),并且已经配置好了Git的使用环境(账号及公钥私钥等问题)。


-a 交互式运行

为了下文理解方便,这里简单普及Git中的三个概念:工作区、暂存区、版本库。

  • 首先git工具是用来做代码管理和协作开发的. 你可以把你的开发代码放到远程的GitHub仓库里(GitHub的私有仓库是需要付费的, 相对的公开仓库则免费, 如果你不介意把代码共享给大家). 每次到了一定的开发阶段就把自己的新代码提交到远端的仓库(比如做一天的开发任务之后提交, 又比如做一段有影响的代码之前提交, 这个就看个人的判断了). 这个功能点上可以理解成云储存功能.
  • git可以建立许多的分支, 每个分支下开发不同的功能, 或者是不同的人开发不同的分支. 不同的分支之间可以灵活切换, 合并. 分支也可以打上tag(标签)或者回滚, 总之我目前需要的功能他都有了. 这个功能点上其实和SVN是类似的.

-d foo[=bar] 定义ini中的输入项 foo 的值为 bar

如何简单粗暴理解工作区、暂存区与版本库?

工作区:对克隆的项目中任何文件进行的任何改动,全部在工作区,无论你新增文件还是修改了文件

暂存区:凡是使用git add命令操作后的相关文件全部在暂存区(凡是能git commit的内容都在暂存区)

版本库:凡是经过git commit命令操作后的相关文件全部都在版本库,这里是本地版本库

远程版本库:凡是经过git push命令操作后的相关文件全部都在远程版本库

-e 输出额外信息以便调试和性能分析

如何在命令行模式下轻易区分文件处于工作区、暂存区还是版本库?

关于日常 git 使用.

-z 调入Zend扩展文件

绝大多数命令行终端工具(本文以windows下git-bash终端为例),对文件状态的显示有不同颜色:

工作区内容:无论修改还是新增的文件,呈现红色

暂存区内容:显示绿色

版本库内容:对不起,版本库内容默认没有显示,即使用git status看不到的文件都在版本库中

git status命令下文会有介绍
  • 使用git前需要在本地初始化git, 即git init. 然后需要设置与GitHub仓库的连接, 有HTTPS和SSL两种方式, 这方面请参考其他文章.
  • 1 假设已经存着远端仓库,打开终端terminal使用clone命令拉取远端仓库. 输入下方命令, 按照提示输入密码, 选择文件夹等. HTTPS 和 SSH 地址在GitHub 项目里面的绿色 Clone or download 按钮.
    git clone 项目地址(可以使用 HTTPS 或者 SSH 连接方式)
  • 2 接下来是主要讲的日常操作. 当你完成了一个功能或者一天的工作需要提交的时候. 打开 terminal, 进入项目文件夹并输入下面的命令.
    git add . //把所有修改的文件加入追踪库,当然你也可以单独选择部分文件
    git commit -m "注释" //提交到本地并注释
    git push origin issue1 //提交到远端, issue1 是远端分支名
    这三句可能是日常中用到的最多的语句, 添加 - 提交.
  • 3 如果你在不同的分支开发, 或者合并其他的分支时,就需要切换分支. 例如从 issue1分支切换到 issue2 分支.
    git checkout issue2 //切换到 issue2 分支
  • 4 如果多人开发, 需要合并他人的分支的时候(比如我本地的 issue2 需要合并远端的 issue3 ). 我的做法是先新建一个和远端需要合并的分支名字相同的分支(这个新建的分支是以本地的 issue2 为基础新建的, 所以合并前是和 issue2 一模一样的, 相当于复制了 issue2), 然后拉取远端分支和新建的分支合并, 解决完冲突之后再合并到本地分支当中.
    git branch -a //查看所以的分支, 包括本地分支和远端分支
    git checkout branch -b issue3 //以当前分支为基础新建名为 issue3 的分支并切换到 issue3, 这里是以 issue2 为基础新建 issue3
    git pull origin issue3 //拉取远端的 issue3 分支和本地的 issue3 分支进行合并, 这时可能会提示有冲突, 有冲突时需要解决冲突
    git add . //解决完 issue3 的冲突之后再提交到本地
    git commit -m "注释" //需要先 commit 之后才可以切换分支
    git checkout issue2 //切换到 issue2 分支
    git merge issue3 // 把解决完冲突的 issue3 分支合并到当前分支 issue2
    澳门威尼斯人平台,这时候的 issue2 就已经是合并完线上的最新的代码了, 接下来在按照正常的程序 push 上去就行了. 合并时也可以先 fetch 再 merge , 就是先把远端的拉下来不合并, 再通过 merge 命令进行合并. 上边的 pull 其实是 fetch 和 merge 的集合, 拉取远端并直接合并.

-i php的相关信息

接下来介绍常用的Git命令及作用:


-h help本身。

(1)Git特殊命令集(该特殊仅仅为了与下文中Git命令作用功能范围进行区分)
// 将某个文件夹初始化为Git版本库,无论该文件夹是否为空
git init

// 查看工作区、暂存区、版本库文件状态
git status

// 查看工作区中所有文件的修改内容
git diff

// 查看工作区中某个文件的修改内容,fileName可通过git status命令得到
git diff fileName

// 查看Git某个命令的帮助文档,直接在该命令后加--help参数即可,注意空格
git log --help    查看git log命令的帮助文档
git commit --help    查看git commit命令的帮助文档
git diff --help    查看git diff命令的帮助文档

// 暂存工作区中所有修改或新增的内容,使工作区清空(切换分支和pull代码时常用)
git stash

// 查看被暂存的内容
git stash show

// 将暂存的内容恢复至工作区
git stash pop

// 将a分支上的某次提交commitId应用到当前分支(挑选合并)
git cherry-pick commitId

关于协同开发.
协同开发最难的是代码库的管理和代码的合并. 我通常是这么做的:

1.用php -q 文件名.php 方式把php程序当shell程序来用,

(2)拉取远程代码相关
// 克隆远程版本库,https:xxx和ssh:xxx为远程Git仓库地址,https和ssh代表不同的通讯协议
git clone https:xxx    或者    git clone ssh:xxx

// 从远程版本库更新所有文件到本地版本库,并完成远程与本地对应分支的merge操作
git pull
  • master 分支, master 分支是主分支, 每个上线版本都会合并到 master 分支上, 并打上 tag. master 分支仅由负责人进行管理.
  • develop 分支, 由 master 分支切出来的 develop 分支是开发的主分支, 每个开发人员完成自己的任务之后都会拉取 develop 分支进行合并, 解决冲突之后再提交到 develop 分支上.
  • 个人分支, 比如我叫 ken, 我就从 develop 分支上切出一个名为 ken 的分支作为我个人的主分支.
  • issue分支, 用来管理单独的功能代码, 一般采用 issueX 的命名, issue 和 GitHub 库的 issue 对应. 比如我需要 code 网络层的代码, 我就在 GitHub 仓库建立一个 issue4, 然后本地以 ken 分支为基础建立一个 issue4 分支.

2.用 -s把自己的php程序html化。这样是不是很省心?

(3)提交代码相关
添加工作区内容到暂存区:

    // 添加工作区所有修改或新增的文件到暂存区
    git add .

    // 添加工作区某个新增或修改的文件到暂存区,fileName可通过git status命令得到
    git add fileName

    // 添加工作区多个新增或修改的文件到暂存区,多个文件之间用空格隔开
    git add fileName1 fileName2 fileName3

提交暂存区内容到版本库:

    // 提交暂存区所有文件到版本库,"."代表所有文件,-m代表添加注释,这是方法一
    git commit . -m "提交注释"

    // 提交暂存区所有文件到版本库,"."代表所有文件,该命令会进入vi界面,可添加注释,这是方法二
    git commit .

    // 提交暂存区某个文件到版本库,fileName可通过git status命令得到,这是方法一
    git commit fileName -m "提交注释"

    // 提交暂存区某个文件到版本库,该命令会进入vi界面,可添加注释,这是方法二
    git commit fileName

    // 提交暂存区多个文件到版本库,多个文件之间用空格隔开,这是方法一
    git commit fileName1 fileName2 fileName3 -m "提交注释"

    // 提交暂存区多个文件到版本库,该命令会进入vi界面,可添加注释,这是方法二
    git commit fileName1 fileName2 fileName3

将本地版本库推送到远程版本库:

    // 将本地版本库推送到远程版本库,该命令会将本地分支推送到与本地对应的远程分支中
    git push

我的习惯是会频繁的更新个人分支, 在 issue 分支的小阶段完成后或者大改之前会把 issue 分支合并到 ken 分支. 等 issue 稳定之后会合并到 ken 分支,再合并到 develop 分支. 以此保证每个功能, 每个开发人员代码的独立, 以及 develop 分支的稳定.

3.利用php的odbc功能可以在shell命令中对数据库进行操作。

(4)查看提交日志相关
// 查看全部提交日志
git log

// 以一行的形式显示log的title
git log --oneline

// 查看提交修改了哪些内容
git log -p

// 查看某次提交修改了哪些内容
git show commitId

// 查看指定用户的提交, str可以是git中的用户名,也可以是正则表达式
git log --author=str

// 根据log中的一些关键词进行过滤,str可以是提交信息中的某些关键词,也可以是正则表达式
git log -grep=str

// 类似GUI工具显示方式查看日志及更改内容
gitk

还有一点就是每个人尽量只改动自己的部分, 需要修改其他人的部分之前如果有可能最好先沟通, 特别是 xib 以及 storyboard. 这样可以减少90%以上的冲突, 特别是难以用冲突工具解决的冲突.

本文由澳门威尼斯人平台发布于计算机编程,转载请注明出处:PHP的命令行命令使用指南

关键词: