Git rebase 分支代码
- 同步 apahce/master 到 local/master 和 github/master
git pull origin master
git reset --hard origin/master
git push wankunde master --force
- 缓存文件
git stash
- rebase 到 master
git checkout loggable
git rebase master
IDEA 中解决冲突, --> continue rebase
- 恢复原来环境
git push wankunde loggable --force
git stash apply
- clone 远程PR到本地review
git pull origin pull/555/head:allow_file_based_batch_connectors
git checkout allow_file_based_batch_connectors
fork后的项目同步
在自己的项目上发起一个pull request,将base fork 和head fork交换下位置(即将原始项目向自己的项目中进行同步)。同步后对代码merge即可。
如果原始项目有新的branch,需要同步新的新的branch到自己的项目中。
# 1.将项目B clone 到本地
git clone -b master 项目B的git地址
# 2.将项目A的git地址,添加至本地的remote
git remote add upstream 项目A的git地址
# 3.在本地新建一个分支,该分支的名称最好与项目A中新增的那个分支的名称相同以便区分,从项目A中将新分支的内容 pull 到本地
git checkout -b 新分支名称 upstream/新分支名称
# 5.将 pull 下来的分支 push 到项目B 中去
git push origin 新分支名称
Fork 后的代码同步
git pull upstream # 下载源库的所有最新代码
git push origin # 同步所有最新代码
git push --tags # 同步所有tags
------------
使用如下两个命令撤销提交:
git reset --hard commit-id2
git push origin HEAD --force
------------
清理本地tags后同步远程tags
git fetch origin --prune --tags
checkout remote branch
git remote -va
git checkout -t upstream/branch-1.6
Java线程在linux实现
- Java线程在Linux中为进程
- top -Hp [pid] 查看Java线程
- pstack [pid] 查看线程的系统调用
- pstree -a [pid] 或者 pstree -c [pid] 查看线程的父子关系
通过XManager 远程监控
Way 1
- 在xshell 连接的时候配置 ** 连接 - SSH - 隧道 - X11转移 - XManager **
- 打开XManager 即可显示远程
Way 2
- 在远程主机上设置
export DISPLAY=192.168.150.8:0
- XManager 启动passive模式
- 新建XStart,通过ssh模式,连接到主机,并配置要执行的命令
- 补充
Xshell 5 注册码: 690313-111999-999313
Xftp 5 注册码:101210-450789-147200
Xmanager 5 注册码:101210-450789-147200
Xshell4.0注册码 690313-111999-999313
xftp 4.0注册码 101210-450789-147200
Iftop 监控页面菜单
- t 来往的数据合并成一行
- p 显示来往双方端口号
- n 使用DNS解析机器名
- N 解析服务的端口号
- iftop -i eth1 监控指定网卡
Analyze object layout schemas in JVMs
Official website:http://openjdk.java.net/projects/code-tools/jol/
down jar : http://central.maven.org/maven2/org/openjdk/jol/jol-cli/
example : java -jar jol-cli/target/jol-cli.jar internals java.util.HashMap
JFR
- JFR 介绍
- 客户端启用jfr
java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=duration=5s,filename=myrecording.jfr RemoteInstance
- 分析JFR结果。使用Java Mission Control工具打开JFR文件即可。
Java Mission Control
server 端启用JMX的服务
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=40076 -Dcom.sun.management.jmxremote.password.file=/wls/deployop/tomcat-7.0.56/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/wls/deployop/tomcat-7.0.56/conf/jmxremote.access"
jmxremote.password内容
用户名 密码
jmxremote.access 内容
monitorRole readonly
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
客户端直接点击jmc.exe 就可以执行
1.enable heapdump:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError =”sh ~/cleanup.sh”
2.enable remote debug:
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000, suspend=n
3.enable GC log:
-Xloggc:/logs/date +%F_%H-%M-%S
-gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCCause
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M
4.enable JMX:
-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/conf/jmxremote.access
5.enable Jprofiler:
-agentpath:/opt/jprofiler/bin/linux-x64/libjprofilerti.so=port=8849
6.enable EMMA:
-Demma.rt.control=true -Xverify:none -Demma.coverage.out.file=/opt/codecoverage_emma.ec