不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2017-03-28 20:26  分类:编程基础/Web安全  编辑

Git 从远程的分支获取最新的版本到本地有这样 2 个命令: 

1. git fetch:相当于是从远程获取最新版本到本地,但不会自动 merge 

git fetch origin master 
git log -p master origin/master 
git merge origin/master
作者:php-note.com  发布于:2017-03-27 20:25  分类:编程基础/Web安全  编辑

1、svn 转换为 git(会提示,让你输入先前 svn 的账号与密码)

# 切换至 本地项目目录
cd /Users/jianbao/PhpStormProjects/fiisoo/

# 克隆 svn 项目,并转换为 git 项目
git svn clone svn://IP地址/projectname --no-metadata  projectname2
作者:php-note.com  发布于:2017-03-27 20:24  分类:Go/Python  编辑

[荐] Gitea:Git with a cup of tea,在 Gogs 基础上,发展起来的 自助 Git 服务系统。Gogs是一个个人维护的版本,而Gitea是一个社区组织维护的,版本迭代更新快

[github] [官网] [二进制安装]

搭建过程如下:

下载二进制包

建议到官网上 下载 执行包,github 上下载太慢。CentOS 64 位系统,选择最新版的:gitea-1.1-linux-amd64。

下载后,重命名为 gitea,存放到服务器上的物理路径为: /fiisoo/go/gitea

作者:php-note.com  发布于:2017-03-26 20:23  分类:编程基础/Web安全  编辑

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制 禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息。

作者:php-note.com  发布于:2017-03-26 20:22  分类:编程基础/Web安全  编辑

软件开发中,bug 就像家常便饭一样。有了 bug 就需要修复,在 Git 中,由于分支是如此的强大,所以,每个 bug 都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

当你接到一个修复一个代号 101 的 bug 的任务时,很自然地,你想创建一个分支 issue-101 来修复它,但是,等等,当前正在 dev 上进行的工作还没有提交:

作者:php-note.com  发布于:2017-03-26 20:21  分类:编程基础/Web安全  编辑

每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在 Git 里,这个分支叫主分支,即 master 分支。HEAD 严格来说不是指向提交,而是指向 mastermaster 才是指向提交的,所以,HEAD 指向的就是当前分支。

一开始的时候,master 分支是一条线,Git 用 master 指向最新的提交,再用 HEAD 指向 master,就能确定当前分支,以及当前分支的提交点:

作者:php-note.com  发布于:2017-03-24 20:20  分类:编程基础/Web安全  编辑

首先要明确一点,对 Git 的操作是围绕 3 个大的步骤来展开的(其实几乎所有的 SCM 都是这样)

  1. 从 git 取数据(git clone
  2. 改动代码
  3. 将改动传回 git(git push
作者:php-note.com  发布于:2017-03-23 20:19  分类:电脑/软件使用  编辑

使用 SVN 作为版本控制的时候,整理过一个 导出文件脚本:利用 PHP 导出 SVN 新增或修改过的文件

现在换成了 Git,整理出类似的脚本:

作者:php-note.com  发布于:2017-03-23 20:18  分类:编程基础/Web安全  编辑

1. 输出最后一次提交的改变

这个命令,我经常使用它 来发送其他没有使用 git 的人来检查或者集成所修改的。它会输出最近提交的修改内容到一个 zip 文件中。

git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)
作者:php-note.com  发布于:2017-03-22 20:17  分类:Linux软件安装/优化  编辑

CentOS 6.8 自带的 Git 版本为 1.7.1,比较旧,yum 安装也停留在 1.7.1,还是源码编译安装吧。

1. 下载源码:

wget -c https://github.com/git/git/archive/v2.12.1.tar.gz

2. 卸载老版本Git

yum remove git
作者:php-note.com  发布于:2017-03-22 20:16  分类:电脑/软件使用  编辑

工作除了开发最新的版本之外还要对原来的版本做例行的维护,修修补补。于是有了在两个分支之间游走切换的问题,最新改版的代码在分支 new 上,旧版本的代码在分支 old 上,我在 new 上开发了一半,忽然有人给了我一个改进的需求,于是我要切换回 old 去修改代码。在这个场景下,我摸索了三种方法:

作者:php-note.com  发布于:2017-03-10 19:38  分类:电脑/软件使用  编辑

基本上,Git就是以下面的命令顺序学习的。文中笔记是从廖雪峰老师的 Git教程 中总结出来的,方面查阅命令。

1、基础

  • git config --global user.name "Your Name"设置你的仓库用户名(用于标识提交者)
  • git config --global user.email "email@example.com"设置你的仓库邮箱(用于标识提交者)
  • git init 初始化一个git仓库
  • git add --all 添加所有更改的文件
  • git add filename1 当然可以指定添加filename1
  • git commit -m "commit message" 添加更改的信息,必须要有,不然报错,不建议不加。
作者:php-note.com  发布于:2017-03-10 19:29  分类:电脑/软件使用  编辑

git pull 时,报错:

Git Pull Failed: refusing to merge unrelated histories

解决方案:

git pull origin master --allow-unrelated-historie

作者:php-note.com  发布于:2017-03-10 19:27  分类:Go/Python  编辑

2016年国庆节(10月1日)开始接触 Go 语言,记录一下它的 版本发布 与 TIOBE 排名:

Golang 排行榜
月份 版本 排名 备注
2012.03 1.0    
       
2015.08 1.5.0   v1.5 发布,完全移除 C,使用 Go 编译 Go
2015.09 1.5.1    
2015.12 1.5.2    
作者:php-note.com  发布于:2017-03-10 10:28  分类:Go/Python  编辑

golang 编码 json 还比较简单,而解析 json 则非常蛋疼。不像 PHP 一句 json_decode() 就能搞定。之前项目开发中,为了兼容不同客户端的需求,请求的 content-type 可以是 json,也可以是 www-x-urlencode。然后某天前端希望某个后端服务提供 json 的处理,而当时后端使用 java 实现了 www-x-urlencode 的请求,对于突然希望提供 json 处理产生了极大的情绪。当时不太理解,现在看来,对于静态语言解析未知的 JSON 确实是一项挑战。

定义结构

与编码 json 的 Marshal 类似,解析 json 也提供了 Unmarshal 方法。对于解析 json,也大致分两步,首先定义结构,然后调用 Unmarshal 方法序列化。我们先从简单的例子开始吧。

type Account struct {
	Email    string  `json:"email"`
	Password string  `json:"password"`
	Money    float64 `json:"money"`
}

var jsonString string = `{
	"email": "phpgo@163.com",
	"password" : "123456",
	"money" : 100.5
}`

func main() {

	account := Account{}
	err := json.Unmarshal([]byte(jsonString), &account)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("%+v\n", account)
}
作者:php-note.com  发布于:2017-03-07 10:27  分类:Go/Python  编辑

JSON 是一种数据格式描述语言。以 key 和 value 构成的哈系结构,类似 Javascript 中的对象,python 中的字典。通常 json 格式的 key 是字符串,其值可以是任意类型,字串,数字,数组或者对象结构。更多关于 Json 的可以访问 JSON 了解。

数据结构 map

json 源于 Javascript 的对象结构,golang 中有直接对应的数据结构 map,可是 golang 的 map 也是 key-value 结构,同时 struct 结构体也可以描述 json。当然,对于 json 的数据类型,go 也会有对象的结构所匹配。大致对应关系如下:

数据类型 JSON Golang
字串 string string
整数 number int64
浮点数 number flaot64
数组 arrary slice
对象 object struct
布尔 bool bool
空值 null nil
作者:php-note.com  发布于:2017-03-06 10:26  分类:HTML/CSS/JS  编辑
$('#<!--{$inputId}-->').datetimepicker({
  todayHighlight: true,
  format: "YYYY-MM-DD<!--{if $isTime}--> HH:mm<!--{/if}-->",
  pickTime: <!--{if $isTime}-->true<!--{else}-->false<!--{/if}-->,
  minuteStepping: <!--{$minuteStepping}-->,
  language: 'zh-CN',
  inputMask: true,
  inline: true,
  sideBySide: true,
  pickerPosition:'bottom-right'
}).bind('dp.change', function(e) {
  var d = new Date(e.date);

  console.log(d.getFullYear()); // 年
  console.log(d.getMonth() + 1); // 月
  console.log(d.getDate()); // 日期

}).next().on(ace.click_event, function(){
  $(this).prev().focus();
});
作者:php-note.com  发布于:2017-03-05 10:25  分类:Go/Python  编辑

现在的 Go 版本是 1.8,早在 1.5 时期,就有了 Vendor 包机制,详情可查看博文:“理解 Go 1.5 vendor”。

遇到的问题

个人在使用 Glide 管理 Vendor 包时(附:Golang Vendor 包管理工具 glide 使用教程),老编译不成功! 后来猛地发现,原来是我对 Vendor 包机制理解不够深入导致的。

Glide 官方教程中提供了一个 Demo 项目结构,如下所示:

$GOPATH/src/myProject (Your project)
  |
  |-- glide.yaml
  |
  |-- glide.lock
  |
  |-- main.go (Your main go code can live here)
  |
  |-- mySubpackage (You can create your own subpackages, too)
  |    |
  |    |-- foo.go
  |
  |-- vendor
       |-- github.com
            |
            |-- Masterminds
                  |
                  |-- ... etc.
作者:php-note.com  发布于:2017-03-02 10:24  分类:Go/Python  编辑

Glide 是 Golang 的 Vendor 包管理器,方便你管理 vendor 和 verdor 包。类似 Java 的 Maven,PHP 的 Composer。

主要特性:

  • 简单管理依赖

  • 支持 versioning packages,包括 Semantic Versioning 2.0.0 支持

  • 支持 aliasing packages (e.g. for working with github forks)

  • Remove the need for munging import statements

  • 支持所有 go 工具

  • 支持 VCS 工具和 Go 支持:git、bzr、hg、svn

  • 支持定制本地和全局插件 (see docs/plugins.md)

  • 仓库缓存