分类 program 下的文章

http://www.windowsphone.com/s?appid=15ceed21-19dc-4259-a7a1-d339e9b79722

http://www.second-auto.com/ 模仿
http://www.szbenice.com/ 理想
http://www.szsurpass.com.cn 现有的网站

需要:
https://www.kancloud.cn/jingyifeng/thinkphp 文档
https://daneden.github.io/animate.css/
http://www.superslide2.com/
http://www.ruanyifeng.com/blog/2019/03/coloring-scheme.html 配色
http://layer.layui.com/
https://ke.qq.com/course/280635
ThinkPHP5双语企业网站快速开发实战-文件管理+微信公众号机器人
http://m87.mobanxiu.net/
http://m87.mobanxiu.net/index.html
http://3160.10yanw.com/

{$Think.lang 表示调用语言包
请直接修改语言包文件:
\App\Lang\cn 中文版
\App\Lang\en 英文版

https://qidian.qq.com/
企点
https://ke.qq.com/course/280635#term_id=100332363
https://www.kancloud.cn/jingyifeng/thinkphp
https://study.163.com/course/introduction/1004912007.htm
https://chuanke.baidu.com/6027737-234214.html
http://www.thinkphp.cn/topic/52270.html
https://gitee.com/jingyifeng/companyweb-thinkphp5/

https://mb.mituo.cn/mui111
https://mb.mituo.cn/mui097
模板

服务器信息
http://www.second-auto.com/weboms/Template/pc_web.zip

https://gitee.com/apiadmin/ApiAdmin
https://gitee.com/search?q=thinkphp&sort=last_push_at&type=

后台
https://gitee.com/lptiyu/lptiyu_web
https://gitee.com/JinHuiShengWuQiYeZhan/JinHuiShengWuQiYeZhan-ThinkCMFjhs
https://gitee.com/sunzenghao/taiji
https://gitee.com/vmbqaf03852/ThinkCMF ok
https://gitee.com/wolf18/Wolf-Blog-thinkphp-5.2.x
https://gitee.com/listen164875052/tp51_backstage
https://gitee.com/aabbdds/financial_thinkphp
https://gitee.com/Trendymen/thinkphp-restful-api
https://gitee.com/ycsjx/vueThinkphp5.1
https://gitee.com/gitzwt/ThinkApiAdmin
https://gitee.com/null_332_0710/JiyCms
https://gitee.com/dddbh/thinkphp32_enterprise_station
https://gitee.com/LiGirl/TP5
https://gitee.com/ilt/zhai-music
https://gitee.com/gitzwt/ThinkApiAdmin
https://gitee.com/jingyifeng/companyweb-thinkphp5
https://gitee.com/ghj/ThinkGMS
https://gitee.com/silverpool/perproty
https://gitee.com/TYPO3_GO/thinkphp_company
https://gitee.com/fjp203/solve2
https://gitee.com/linjialiang/tp5
https://gitee.com/TYPO3_GO/thinkphp_company
https://gitee.com/gogochen/tpEcharts
https://gitee.com/WenPinGao/tp5
https://gitee.com/apiadmin/ApiAdmin
https://gitee.com/finemanlf/ExbizOMS
https://gitee.com/zzuyxg/yThink

https://gitee.com/liaodeiy/jianbaizhan



官网:http://www.thinkphp.cn/
手册:https://www.kancloud.cn/@manual
https://www.kancloud.cn/manual/thinkphp5_1/353946
ThinkPHP5.1完全开发手册

https://www.kancloud.cn/manual/thinkphp5/118003
ThinkPHP5.0完全开发手册

第三方整理手册
THINKPHP 5.0 手册最新版

https://pkg.phpcomposer.com/
使用Composer安装ThinkPHP5

ThinkPHP

漏洞说明
RBAC管理

php5.6+Redis+Windows7安装 (phpstudy)
igbinary
redis
phpstudy2016安装redis扩展
windows 上的 PHP 开发环境用什么比较好
ThinkPHP5基础讲解视频教程
[ThinkPHP5快速开发企业站点[全程实录]更新中...][11]

开发环境

基于 ThinkPHP框架

https://gitee.com/karson/fastadmin 官网

ThinkphpCMF内容管理框架
https://github.com/thinkcmf/thinkcmf
ThinkCMF FAQ ThinkCMF常见难解问题手册
ThinkPHP5.1完全开发手册
教程视频
ThinkCMF快速建站之模板开发
ThinkCMF 5.0教程

自定义提示

thinkphp 默认提示信息 thinkphp5 自定义跳转提示success error页面美化
https://www.fujieace.com/thinkphp/tp5-layer.html
https://cloud.tencent.com/info/afd9e1a100b04f72b191c4814f0fb1f5.html
http://www.twbweb.com/2104.html
https://www.kancloud.cn/w113211/layers/268062
https://www.kancloud.cn/w113211/layers/268091
http://www.php.cn/php-weizijiaocheng-395179.html

http://www.twbweb.com/category/php

第三方教程视频

ThinkPHP5基础讲解视频教程

独孤九贱(5)_ThinkPHP5视频教程


来自 https://eqblog.com/centos-install-python3-6-4.html
1.获取编译包:

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

2.解压:

tar -zxvf Python-3.6.4.tgz

3.移动到安装目录

mv Python-3.6.4 /usr/local

4.进入目录:

cd /usr/local/Python-3.6.4

5.编译安装:

./configure
make
make install

6.软链接:

ln -s /usr/local/bin/python3.6 /usr/bin/python3

大功告成:

python3 -V

以下来自 https://eqblog.com/whmcs-python-hon.html
http://www.hostloc.com/thread-422346-1-1.html
安装Python3 使用python3 x.py

#本脚本基于python3+方糖实现enoctus监控+微信推送
#使用方法:
#修改 sckey 为你自己的方糖KEY
#修改 pid 为你想要监控的套餐PID
#python vps.py
#香港1G pid=93


from sys import argv
from urllib import request,parse
from os import system
import datetime
sckey="xxxxxx"
pid=93

url='https://einstein.enoctus.co.uk/cart.php?a=add&pid=%s' % (pid)
try:
    flag=0
    oktime=datetime.datetime.now()
    oktime.strftime('%Y-%m-%d %H:%M:%S')
    outoftime=datetime.datetime.now()
    outoftime.strftime('%Y-%m-%d %H:%M:%S')
    while True:
        header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'}
        req=request.Request(url,headers=header)
        page=request.urlopen(req).read()
        if str(page).find('out of stock')>0:
            if flag>0:
                outoftime=datetime.datetime.now()
                outoftime.strftime('%Y-%m-%d %H:%M:%S')
                timeout='本轮次上货持续时间:%s' % (outoftime-oktime)
                print(timeout)
                tile='%s%s' % ('缺货提醒',timeout)
                textmod={'text':tile,'desp':url}
                textmod = parse.urlencode(textmod)
                urlsc='https://sc.ftqq.com/%s.send' % (sckey)
                req1=request.Request(url='%s%s%s' % (urlsc,'?',textmod),headers=header)
                page1=request.urlopen(req1).read()
            flag=0
            print('缺货')
        else:
            if flag==0:
                oktime=datetime.datetime.now()
                oktime.strftime('%Y-%m-%d %H:%M:%S')
                timeok='本轮缺货持续时间:%s' % (oktime-outoftime)
                print(timeok)
                tile='%s%s' % ('上货提醒',timeok)
                textmod={'text':tile,'desp':url}
                textmod = parse.urlencode(textmod)
                urlsc='https://sc.ftqq.com/%s.send' % (sckey)
                req1=request.Request(url='%s%s%s' % (urlsc,'?',textmod),headers=header)
                page1=request.urlopen(req1).read()
            flag=flag+1
            print('有货')
            if flag<3:
                tile='%s%s' % ('上货提醒',flag)
                textmod={'text':tile,'desp':url}
                textmod = parse.urlencode(textmod)
                urlsc='https://sc.ftqq.com/%s.send' % (sckey)
                req1=request.Request(url='%s%s%s' % (urlsc,'?',textmod),headers=header)
                page1=request.urlopen(req1).read()
except:
    print('脚本异常,退出')


最近一次wordpress主题开发中需要对现有用户角色功能的补充,顺带记录笔记。

注册用户角色

add_role('site_developer', '客户', array(
    'read' => true,  //文章阅读权限
    'moderate_comments' => true, //编辑、删除、修改评论权限
    'edit_posts' => false //编辑文章权限
));

角色API参考http://codex.wordpress.org/Roles_and_Capabilities
更多权限参考列表如下:

read 阅读文章
moderate_comments 管理评论
delete_posts 删除文章
edit_posts 编辑文章
delete_published_posts 删除已发布文章
publish_posts 发布文章
upload_files 上传文件
edit_published_posts 编辑已发布文章
read_private_pages 阅读私有页面
edit_private_pages 编辑私有页面
delete_private_pages 删除私有页面
read_private_posts 阅读私有文章
edit_private_posts 编辑私有文章
delete_private_posts 删除私有文章
delete_users 删除用户
edit_users 编辑用户
edit_themes 编辑主题
edit_plugins 编辑插件

添加/增加用户字段

 /*
 * 自定义用户个人资料信息
 */
add_filter( 'user_contactmethods', 'func_add_contact_fields' );
function func_add_contact_fields( $contactmethods ) {
    $contactmethods['qq'] = 'QQ';
    $contactmethods['qm_mailme'] = 'QQ邮箱“邮我”';
    $contactmethods['qq_weibo'] = '腾讯微博';
    $contactmethods['sina_weibo'] = '新浪微博';
    $contactmethods['twitter'] = 'Twitter';
    $contactmethods['google_plus'] = 'Google+';
    $contactmethods['donate'] = '赞助链接';
    unset( $contactmethods['yim'] );
    unset( $contactmethods['aim'] );
    unset( $contactmethods['jabber'] );
    return $contactmethods;
}

提供一份wordpress主题开发中的优化项目,经过许多版本迭代的最优体验。

随着wordprss功能的越来越完善,同时也越来越臃肿,有必要进行响应的优化工作,特别是对于做企业网站开发而言。

清除控制台不必要功能

add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );
function example_remove_dashboard_widgets() {
    // 控制面板优化
    global $wp_meta_boxes;
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // 删除 "快速发布" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 删除 "引入链接" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); // 删除 "近期评论" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);  // 删除 "近期草稿" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);  // 删除 "WordPress 开发日志" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);  // 删除 "其它 WordPress 新闻" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 删除 "概况" 模块
}
//移除不必要后台菜单选项
add_action( 'admin_menu', 'wpjam_remove_admin_menus' );
function wpjam_remove_admin_menus(){
    remove_menu_page( 'index.php' );                  //移除“仪表盘”-隐藏版本更新提示
    remove_menu_page( 'edit-comments.php' );          //移除“评论”
    //remove_menu_page( 'plugins.php' );              //移除"插件"
    remove_menu_page( 'tools.php' );                  //移除"工具"
    remove_submenu_page( 'options-general.php', 'options-writing.php' );    //移除二级菜单:“设置”——“撰写”
    // remove_submenu_page( 'options-general.php', 'options-discussion.php' ); //移除二级菜单:“设置”——“讨论”
    // remove_submenu_page( 'options-general.php', 'options-media.php' );      //移除二级菜单:“设置”——“多媒体”
}

remove_action('admin_init', '_maybe_update_themes');
add_filter('pre_site_transient_update_themes',  create_function('$a', "return null;"));//禁用主题更新
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );//禁用插件更新
remove_action('admin_init', '_maybe_update_core');
add_filter('pre_site_transient_update_core',    create_function('$a', "return null;")); //禁用版本更新

移除不必要的选项

// Remove Actions
remove_action('wp_head', 'feed_links_extra', 3); // feeds链接
remove_action('wp_head', 'feed_links', 2); 
remove_action('wp_head', 'rsd_link'); //移除head中的rel="EditURI"
remove_action('wp_head', 'wlwmanifest_link'); //移除head中的rel="wlwmanifest"
remove_action('wp_head', 'index_rel_link'); // 
remove_action('wp_head', 'parent_post_rel_link', 10, 0); // Prev link
remove_action('wp_head', 'start_post_rel_link', 10, 0); // Start link
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); //
remove_action('wp_head', 'wp_generator'); //禁止在head泄露wordpress版本号
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
remove_action('wp_head', 'rel_canonical');
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);



http://phpstudy.php.cn/
php5.6+Redis+Windows7安装 (phpstudy)
详解PhpStudy集成环境升级MySQL数据库版本
上面的教材安装前

mysql服务是你自己想要升级mysql服务生成的(前提是你按照了百度上所说的在你想要升级的mysql文件中使用了mysql
-install 等命令,在此还要强调一点,在这个之前,你原来的Mysql文件中你还要执行mysqld -remove!有同学会问了,这是为什么?因为啊。phpstudy是一个集成软件,你装好后,apache + mysql + php都是一起装好的,而Mysqla 就是phpstudy帮你注册的服务,所以你要删了。)

那说道这边,有些同学会问了,那说了这么久,你还是没说为什么phpstudy会起不来mysqlde
服务。其实说到这边,我已经说的很明确了。mysqla既然是phpstudy帮你注册的服务,那你自己mysqld
-install的注册的服务是mysql。那只要,在服务列表中让phpstudy生成一个mysqla的服务就行了啊!哈哈哈,聪明,那怎么做?emmmmmmm,无法截图。。。我直接说吧,打开phpstudy找到服务管理-->mysql-->安装服务!好了!这时候,就是你的时间了。link
start~

然后安装完后,搜索cmd(因为这样才能以管理员身份运行),
以管理员身份运行,标题显示为“选择管理员:命令提示符”
输入大写D: 进入D盘

C:\WINDOWS\system32>D:

D:\>cd phpStudy/PHPTutorial/MySQL

D:\phpStudy\PHPTutorial\MySQL>cd bin

> mysqld --initialize
> mysqld -install

D:\phpStudy\PHPTutorial\MySQL\bin>mysqld --initialzie
2018-06-10 23:28:58 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-06-10 23:28:58 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2018-06-10 23:28:58 0 [Note] mysqld (mysqld 5.6.40) starting as process 7768 ...

D:\phpStudy\PHPTutorial\MySQL\bin>mysqld --install
Service successfully installed.

D:\phpStudy\PHPTutorial\MySQL\bin>

安装好phpstudy后,升级了MySQL后,通过phpstudy启动,Apache可以启动,Mysql无法启动。
解决方法:
之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQLa服务。
同样以管理员身份运行cmd命令行下输入:sc delete mysql 即可删除。
重启即可。

phpStudy本地环境测试,打开网页很慢的解决办法!


前端面试题集锦 && GitHub
总结前端面试过程中最容易出现的问题
前端面试题
前端工作面试问题
面试时HR问:“你离职的原因是什么?”两种回答,结局大不相同!

HTML 问题
CSS 问题
JS 问题

前端面试考点多?看这几篇文章就够了

BAT 要的是什么样的前端实习生?

前端笔试题面试题记录(上)|

请你介绍下所做的项目

别人问你http协议,到底是想问什么?

Java面试通关要点汇总集【终极版】

常见 Web 安全攻防总结

解耦基本可以遵循三个原则:

分层设计
单向依赖
服务抽象

version:1.2
url?=是参数query string
调试时遇到浏览器缓存
浏览器认为不同的url而重新请求
从而避免缓存

写简历

基本信息,姓名,年龄,手机,邮箱,籍贯
学历,博士,硕士,本科,大专
工作经历,时间,公司,岗位,职责,技术栈,业绩
自我陈述
把握面试的沟通方向
豁达,自信的适度发挥

大厂员工接触的技术面很窄吗?

当然,也有人说了,“我所谓的螺丝钉并非做重复机械的工作,而是说只能接触到一小块业务或技术点,无法接触到系统的全貌”。

这个确实是事实,毕竟大厂有非常多的研发人员。所以一般会将一个复杂的系统拆散成多个零部件,每个小组或每个人做其中一块。

但我想说的是,只接触其中一块领域,你就不能成长了吗?大厂和小厂的最大区别是什么?是用户量级。一般的小厂是十几万或几十万的 DAU,而大厂往往是上千万甚至上亿的 DAU,同样一段代码,在小厂里能良好运行,但到了大厂,就会发现里面存在非常多问题。

大厂求精通,求深度;小厂求速度,求广度。

如果你在大厂,就应该尽可能深入去研究你参与的模块,多想想如何把你所做的模块优化到极致,在巨大的用户量面前依然能够稳定运行。相信我,这样的一份经验可以成为未来无数次面试的一大亮点。


GitHub 服务状态
官方搜索关键字文档
官方搜索文档
第三方介绍搜索

MacOS、Git 的代理配置

https://www.v2ex.com/t/843383
https://juejin.cn/post/6844904100081975303

https://www.toimc.com/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/
git常用命令

https://www.toimc.com/git%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86/
git分支管理

第三方代理
https://fastgit.org/

你们仍未掌握那天所学的 git 知识

版本格式:主版本号.次版本号.修订号

Git飞行规则(Flight Rules)

git生成ssh key及本地解决多个ssh key的问题
安装Git:git-scm.com
客户端https://sourceforge.net/projects/git-osx-installer/files/

Git教程
Git 教程
Git中文教程
给自己点时间再记记这200条Git命令
常用 Git 命令清单
Git 简单使用说明
如何搭建一个独立博客——简明 Github Pages与 jekyll 教程
Linux之CentOS 6.7上全编译安装GitLab 7-14中文版
看完就会用的GIT操作图解分析
终于解决“Git Windows客户端保存用户名与密码”的问题
git 简单教程,个人使用
总结一下 Git 不同情况下如何回滚
因为 git pull 和同事闹僵了。
git 似乎在 windows 和 macos 上有差异?
GitHub 上 clone 一个项目下来,慢

git撤销commit 并保存之前的修改
关于git提示“warning: LF will be replaced by CRLF”终极解答
自动忽略不提交从git服务器上获取下并修改的文件
git忽略已经被提交的文件
git commit之后,想撤销commit

git——修改已经提交并push后的commit注释

git默认是不能识别中文的。需要在终端修改能识别中文。

git config --global core.quotepath false

个人空间地址变更后,执行以下命令更新你本地 git 仓库的 remote 地址,如:

git remote set-url origin https://gitee.com/badcodes/jtaro-tutorial.git

git bash 出现vim的时候怎么退出

如果是输出状态,
首先按Esc键退出输入状态,
然后按Shift+“;”,再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出。



使用git push origin master是出现如下问题;
Username for 'https://github.com':
解决办法:
git remote set-url origin git+ssh://git@github.com/username/reponame.git

如何把自己的项目共享到 Github

**create a new repository on the command line**
echo "# xx" >> README.md
git init
git config user.name "username"  //如果使用指定用户提交
git config user.email "username@gmail.com" //如果使用指定用户邮箱提交
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xx/xx.git
git push -u origin master

**or push an existing repository from the command line**
git remote add origin https://github.com/xx/xx.git
git push -u origin master


Enter passphrase for key 每次push 都要输入push 密码

因为当初生成SSH KEY的时候有设置密码
解决方法:

github 每次需要输入passphrase for key id_rsa 的解决办法

http://stackoverflow.com/questions/21095054/ssh-key-still-asking-for-password-and-passphrase
参考了stackoverflow
删除掉之前的passphrase密码就可以了

$ ssh-keygen -p

当提升你输入新的密码的时候,按enter就可以啦,继续确认enter就可以

Mac下输出目录树层结构的tree命令
brew install tree
安装成功后可以使用--help查看帮助信息
tree --help
tree -I “node_modules”

3.配置用户信息
git config --global user.name "你的 Github 用户名"
git config --global user.email "你的 Github 注册邮箱"

[github上fork别人的代码之后,如何保持和原作者同步的更新(转)[31]

经常看到GitHub上作者有更新,但是之前Fork了的项目没有更新到自己上
看到github上fork别人的代码之后,如何保持和原作者同步的更新
这家伙以前有个很nice的域名是doufu.ru(豆腐乳),想应该是卖了吧?
转载一下,可能以后会用到

保持和原作者同步的更新的方法

1、进入你的Github发起Pull Request
123
2、选择Compare across fork
3、然后反向操作,base改成自己的Forkhead改成原作者的,然后Github会自动比较改过的地方让后发起Pull Request,接着在自己项目的Request页面合并一下就行了。

刚用上,杠杠的

个人空间地址变更后,执行以下命令更新你本地 git 仓库的 remote 地址,如:
git remote set-url origin https://gitee.com/badcodes/jtaro-tutorial.git

git 常用命令

自定义目录名

git clone https://git.oschina.net/XXX/hello-world.git my-hello-world

git add 添加 多余文件
这样的错误是由于, 有的时候 可能

git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件

git add 如果添加了错误的文件的话

撤销操作

git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

分支

查看本地分支

git branch

查看所有分支(本地加远程)

git branch -a

创建分支

git branch <branch-name> # 例: git branch develop

切换(检出)分支

git checkout <branch-name> # 例: git checkout develop

创建并切换到新建分支

git checkout -b <branch-name> # 例:git checkout -b develop

提交本地分支到远程分支

git push origin branch_name
git push origin branch_name:master


撤回

不小心commit了一个不应该commit的修改,但是还没有push,想撤销那个commit

git log
git reset --hard commit_id

git reflog 时光穿梭机

来自此处
场景如下:

1.commit的信息很简单,就是做了6个功能,每个功能对应一个commit的提交,分别是feature-1 到 feature-6;  
2.小白回滚到了feature-1上,并且回滚的时候加了--hard,导致之前feature-2 到 feature-6的所有代码全部弄丢了;  
3.现在feature-2 到 feature-6的代码没了;
4.小白还在这个基础上新添加了一个commit提交,信息叫feature-7;
5.现在feature-2 到 feature-6全没了,还多了一个feature-7;
6.如何把丢失的代码feature-2 到 feature-6全部恢复回来,并且feature-7的代码也要保留;

只需掌握了git reflog和git cherry-pick
git reflog
展示出所有你之前git操作,你以前所有的操作都被git记录了下来
这时候要记好两个值:4c97ff3和cd52afc,
他们分别是feature-7和feature-6的hash码。
然后执行回滚,回到feature-6上:
git reset --hard cd52afc
现在我们回到了feature-6,
但是feature-7没了,如何加上来呢?
这个时候就用上了git cherry-pick,
刚刚我们知道了feature-7的hash码为4c97ff3,操作如下:
git cherry-pick 4c97ff3
输入好了以后,你的feature-7的代码就回来了。
期间可能会有一些冲突,按照提示解决就好。
feature-1 到 feature-7的代码就合并到了一起,以前的代码也都回来了。


提交代码

git commit -m <comment> # 例:git commit -m "修复了issue-1:错别字"

合并

切换到master主干并将develop分支的代码合并过来

git checkout master
git merge <branch-name> # 例:git merge develop


从历史的提交建立新分支的方法:
方法一: checkout到历史提交,然后checkout -b。
方法二: reset到历史提交,checkout -b,然后再reset到原来的版本。
方法三: git branch

将某个历史版本全部拉到工作区和暂存区:
方法一: 可能的需求是为了将过去删除掉的修改重新应用到最新的版本,这时可以先回到历史版本处建立分支,然后回到原来的最新的版本,进行merge分支的操作。
方法二: reset加上hard参数到需要的历史版本,然后再reset加上soft参数回来。

将历史版本的某文件版本拉到当前工作区或者暂存区进行处理:
方法一: git reset HEAD~2 foo.py,直接拉到暂存区。
方法二: git checkout HEAD~2 foo.py,拉到工作区和暂存区。

已经有添加到暂存区的文件修改,之后又进行了修改。想要都撤销掉,变为和仓库中的版本相同(仓库覆盖工作和暂存):
方法一:1、git reset HEAD file 清空暂存区的提交,变为和仓库中的版本相同。2、git checkout -- file 以暂存区为蓝本,覆盖掉工作区。
方法二:git checkout HEAD -- file 。

已经添加到暂存区的修改之后又进行了修改,想要都撤销掉,变为和仓库中的版本相同(仓库覆盖工作和暂存):
方法一:git reset --hard HEAD 重设HEAD,hard参数覆盖工作区和暂存区。
方法二:强制切换到其他分支丢弃更改,然后再切回来。

撤销当前工作区的文件修改,变为和暂存区相同(暂存覆盖工作):
方法一:git checkout -- file 暂存区覆盖工作区(以暂存区为蓝本,覆盖掉工作区)。

撤销添加到暂存区的文件修改,将修改退回到工作区(暂存先覆盖工作,然后仓库覆盖暂存):
方法一:1、git checkout -- file 以暂存区为蓝本,覆盖掉工作区。 2、git reset HEAD file 清空暂存区的提交,变为和仓库中的版本相同。

清空暂存区文件修改:
方法一:git reset -- file 清空暂存区的文件修改。

清空暂存区:
方法一:git reset HEAD file 清空暂存区。

checkout文件层面的操作:
主要对暂存区和工作区起作用,一般有暂存区覆盖工作区的行为特征。

reset文件层面的操作:
主要对暂存区起作用。

简单对比git pull和git pull --rebase的使用

git常用指令
git 问题汇总
同时把代码提交到两个git代码托管的服务器上

git commit -m 提交的内容换行
网上说只需要通过单引号来换行,一直没理解,后面终于试出来了。总结一句话就是。 。

先输入第一个引号,按Enter即可换行,完成后再补齐后面的引号
// 步骤一: 输入第一行
git commit -m "1. 第一行

// 步骤二: 按Enter 输入第二行
git commit -m "1. 第一行

第二行
// 步骤三: 输入完毕,补齐引号,提交!
git commit -m "1. 第一行

第二行"

git 放弃本地某个文件的修改,或所有修改

1.git checkout
git checkout 文件名
git checkout // 放弃所有文件的所有修改
2.git reset
git reset --hard 版本号 // 返回到某个版本,放弃所有修改
有一种恢复会保留修改记录,有一种不会保留修改记录,请翻阅资料文档

远程分支 A 改名为B了,本地(git branch -a )没找到
解决方法:
git fetch origin B #更新
git branch -a #查看所有分支

多人合作最优选择Gitlab flow
或者下面的流程

多人合作开发使用git(简单版)

A新开一个分支a
B新开一个分支b
主分支为master
A开发的代码提交到远程a分支上(git push origin a)
然后切换master主分支上(git checkout master),拉远程master分支是否有更新(git pull origin master)
然后合并本地分支a最新代码(git merge a),在提交到远程master分支上(git push origin master)
然后切换分支a上(git checkout a),合并最新master分支上的代码到分支a上(git merge master)
最后继续写代码或者直接更新最新代码到远程分支a上(git push origin a)

B操作同理

多人开发Git(繁琐版)

情况如下:
1.线上突然出现一个紧急的bug,需要紧急处理,但不影响本地正在进行的开发;
2.只修bug;
3.新功能开发。

场景:线上的某个模块有bug,要求撤回,更换到上个版本,但不影响这个版本新加的功能(A->B->M)
做法:本地根据情况(功能,bug)新建分支,不要在一个分支上开发: 本地会有bugA,bugB, fix, dev, test等
处理:(A->B->M)线上模版X出现bugB,但此版本已有新功能M,master不能直接撤回上个版本A,

 本地模块X分支从B撤回上个版本A,合并新功能M的更新,提交。

疑问:模块X分支上要不要git pull?

1.本地新建 test 分支 并拉取远程 test 分支
git checkout -b test origin/test
PS: 【拉取远程是指在这个时刻以远程的更新为主,在此基础上开发,备用,正常状态不会动这个分支】

2.新建 bug 分支
git branch bug
PS:【根据需求,会有N 多 个bug 分支,或开发分支】

3.切换到 bug 分支上
git checkout bug

以上2.3步骤可以一个命令:
新建并切换这个 bug 新分支
git checkout -b bug

4.在新分支上合并 test 分支
git merge test
PS:【新建分支后这个新分支没用任何东西,需要将最新的(根据情况)分支合并到这个新分支上,在此基础上开发、修改】

以上步骤都是在新分支上进行:
bug 分支合并 test 主分支后,
就是说在 test 主分支的基础上开发、修 bug,但不动 test 分支
开发完后再切换到 test 主分支上

5.切换到 test 主分支
git checkout test

切到 test 主分支后
此时的 test 分支还是上一次git pull 的状态
并没有合并bug 分支的更新,同时可能比远程的 test 分支版本还要低
所以需要进行下一步拉取远程 test 主分支更新

6.拉取远程 test 主分支
git pull origin test

拉取远程分支

git checkout -b 本地分支 origin/远程分支

在拉取远程 test 主分支前,
本地此时的 test 主分支还是上个版本,
本地的 test 分支也没改动过,合并远程 test 主分支后是没问题的。
进行下一步合并本地开发 bug 分支,
一般出现冲突是在这一步【git merge bug】

7.在此分支合并其他分支,例如test 分支上合并 bug 分支
git merge bug

合并本地bug分支前,此时的 test 分支是远程最新的[PS:在上一步已经拉取远程 test 主分支的 更新]
此时的 本地 test 主分支在与本地 bug 分支合并[git merge bug]过程中可能会出现冲突

解决后,将本地 test 分支的更新提交到远程 test 分支上

8.提交到远程 test 主分支
git push origin test

提交后,再次回到开始,循环以上。

几个有用的命令:

1.获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。
git cherry-pick deeb74302f0e44

2.从撤回一次历史的提交,git revert 命令的好处就是不会丢掉别人的提交,即使你撤销后覆盖了别人的提交,他更新代码后,可以在本地用 reset 向前回滚,找到自己的代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖的提交了。
git revert deeb74302f0e44

[Git高级教程(二)] 远程仓库版本回退方法
[Git] Git整理(五) git cherry-pick的使用

git使用情景1:正在写代码,突然线上出现了bug

方式2:拉一个新分支,老司机都推荐这样做,充分利用了git特性
先暂存一下工作空间改动:
git stash
还原暂存工作空间的改动:
git stash pop

新建一个分支,并且换到这个新分支
git branch fix_bug //新建分支
git checkout fix_bug //切换分支

这时候就可以安心的在这个fix_bug分支改bug了,改完之后:
git add .
git commit -m "fix a bug"

切换到master主分支
git checkout master

从fix_bug合并到master分支
git merge fix_bug

提交代码
git push

然后从暂存区恢复代码
git stash pop

此时如有冲突,需要解决冲突
哈哈,工作空间又恢复到了原状

其他

执行Git命令时出现各种 SSL certificate problem 的解决办法

git config --global http.sslVerify false

建议用 git check-ignore 来检查下是哪个规则导致的
Window 上如何删除git的账户
控制面板用户帐户凭据管理器 ,选Windows凭据,看到普通凭据
git log退出方法:英文状态下按Q

git强制覆盖:

    git fetch --all
    git reset --hard origin/master
    git pull

git强制覆盖本地命令(单条执行):

    git fetch --all && git reset --hard origin/master && git pull

git强制覆盖单个文件或目录filename

git log

获取commit ID:cc8990b

git checkout -m cc8990b <filename>

例如:

git log
获取commit ID:430c63aba0f2812d
git checkout 430c63aba0f2812d src/views/xxx/Home.vue


如何移除 git 提交历史中关于某个文件的修改历史?

场景是这样的,在一次提交 PR 的 review 过程中,我提交的一个文件,在若干 commits 的修改下,最终和最初状态完全相同,但是 PR 中却保留了对该文件的提交历史,因此 reviewer 希望我可以将这个文件移除提交历史。

这个主要需要用到 git rebase ,步骤如下:

git log filename: 首先通过 git log 来查询要回滚到的 commit id
git reset commit-id filename: 对该文件进行 reset 操作(撤销提交历史相关的修改)
git checkout filename: 对其进行 checkout 操作(撤销对文件本身的修改)
git commit --amend: 修改提交历史信息
git rebase --continue/git push: 同步

我的提交信息规范

aliyun code

https://code.aliyun.com/help/ssh/README 生成Ssh
https://code.aliyun.com/profile PC上无法验证显示“页面不存在(404)”, 手机上可以。
https://code.aliyun.com/profile/password/edit 如果没有设置code账号(区别登录账号)密码,先验证邮箱才可以更改密码
阿里云window下ssh 错误
Aliyun关于用户的新规则

GitHub

github的表情
GitHub Actions 操作

PR

例如A本地:
git init
操作 n 次 commits ...

git:
A新建一个aaa 仓库

把本地提交到远程 aaa,需要把本地的git 指向 远程
git remote add origin git@github.com/xxx/aaa.git
git push origin master


第三方B fork A 的 aaa
B:git clone git@github.com/bbb/aaa.git

B: 开发新功能,新建分支ccc
git checkout -b ccc
edit,commit ...

提交到 B 的 远程
git push origin ccc

B在A 的仓库发起PR

但此时原作者已经修改多次
原作者需要做新建分支bbb 同步B的代码 ,合并B的ccc
git remote add bbb git@github.com:bbb/aaa.git
git fetch bbb
得到 bbb/ccc
然后A新建测试分支newA
git checkout -b newA
git merge bbb/ccc


测试完成后,A合并到master
git cehckout master
git merge newA
测试没用后,A删除newA
git bran -D newA

A原作者,合并代码提交
git push origin master

完成一次PR
B 可以删除之前的分支ccc
git branch -D ccc
删除远程的ccc
git push origin :ccc


之后bbb  把原作者的代码添加到自己这边来
git remote add upstream git@github.com:A/aaa.git
git checkout master 
git pull upstream master


五步git操作搞定Github中fork的项目与原作者同步

https://blog.csdn.net/zwhlxl/article/details/45110587

命令如下:

git clone xxx-fork.git

git remote add xxx xxx.git

git fetch xxx

git merge xxx/master

git push origin master


简单的WEB目录 前段基于bootstrap 与 Jquery && 源码&& 直接下载

webdir

index.php放在你的网站根目录并且设置好你的所在目录权限即可
只展示该目录以下的所有文件
通过添加禁止显示文件夹以及后缀文件来控制显示
例如:

$this->notex=array("php","js","tgz");//不允许显示的后缀名文件
$this->notdir=array("a","phpmyadmin");//不允许显示的文件夹

支持在线播放mp4视频和MP3音频以及PDF在线预览;

eg:104.223.12.18

请不要使用index.php 以外的其他文件
不支持IE


先去 https://www.liaoxuefeng.com/ 过一遍。
然后官方文档 细看一边 https://docs.python.org/zh-cn/3.6/tutorial/index.html
最后去找实战视频或者教程

Python 的练手项目有哪些值得推荐?
Python 练习册,每天一个小程序 https://github.com/Show-Me-the-Code/python
Python 练习册,每天一个小程序

Python3 教程

Python3入门笔记(1) —— windows安装与运行
一行代码结果叹为观止,能做到这么极致的也只有Python了

https://www.tutorialdocs.com/tutorial/python3/home.html

https://zhuanlan.zhihu.com/p/39812581
3小时Python入门

https://learnpythonthehardway.org/
https://github.com/CodementorIO/Python-Learning-Resources
https://github.com/xjr7670/QQzone_crawler

python -m SimpleHTTPServer
python -m SimpleHTTPServer 8080 # python2
python3 -m http.server 8080 # python3


Django

Django 2.0 中文官方文档地址:
https://docs.djangoproject.com/zh-hans/2.0/

Django Girls 教程
https://tutorial.djangogirls.org/zh/

https://pythonclock.org/

Crossin编程教室


ThinkPHP被黑了,你知道吗?
小学生作为?沉默...看到Q群就笑了,图样
从第三方来源得知“域名劫持”
www.3gsec.cn -> 182.61.4.117
www.thinkphp.cn -> 182.61.4.117

tp官网不是用kangle,这是域名挟持到黑阔的机器上面吧?
传说中的黑页?
0
1
挂马?
2
1
5
2
3
4

域名注册,国内也就万网和新网(请不要在代理那里注册)靠谱点。
首选万网,垃圾新网经常犯病。。。
最后说说社工学是什么东东吧

6
7
8

相关来自https://v2ex.com/t/288408