Blog

  • git notes

    level 6

    rebase

    git fetch只获取,并不合并

    本地与远端使用git rebase
    git rebase进行了三步操作

    把所有master的改变放到一个临时区域里面

    运行所有origin/master的提交

    运行在临时区域的commits

    本地两个分支间的rebase,master和  develop均有提交

    在develop分支下,

    git rebase master

    然后再git checkout master

    把develp合并过来

    git merge develop

    conflicts本地master和远端origin/master都修改了同一个文件,并在本地提交

    解决冲突

    在master上git fetch

    然后git rebase,这样保证在master上有最新的代码

    这里会提示有冲突

    当解决了问题,则用git rebase –continue

    level 7

    git log
    sha hash

    git config –global color.ui true

    git log –pretty=oneline

    git log –oneline –stat

    当前分支与 master 的区别

    git log --oneline  ...master
    

    git log -p 查看具体的改变

    git diff  == git diff HEAD
    git diff HEAD^

    git diff HEAD~5
    git diff HEAD^..HEAD

    git diff sha..sha
    git diff master develop

    对于单个文件一直以来的变化
    git blame index.html –date short
    git status 看到有不想提交的,则在 .git/info/exclude 把文件过滤掉

    .gitignore
    git 删除文件
    git rm README.txt
    在 system 中不会被删除,但在 git 中会删除
    git rm –cached development.log

    mac 指定 merge 工具

    git config --global merge.tool opendiff
    git config --global alias.st status 来设置 status 的别名
    

    level 4

    git push rejected
    

    首先git pull

    pull的动做细分

    git fetch到origin/master

    将origin/master合并到本地  master

    git merge origin/master

    现在再push

    conflict

    必须手动解决

    level 1

    查看staged文件做了哪些改动

    git diff –staged

    在提交的同时进行添加

    git commit -a -m “add index”

    将修改的文件恢复

    git checkout — cats.html index.html

    level 2

    undo上一次提交,并将改变放到 staging 中

    git reset --soft HEAD^

    只修改上一次的提交

    git commit --amend -m "New Message"
    

    undo 上一次的提交和修改,你的修改会丢失

    git reset --hard HEAD^

    undo 上两次的提交和修改

    git reset --hard HEAD^^

    git reset HEAD ostrich.html

    查看远端的 fetch 及 push地址
    git remote -v

    git remote add <name> <address>

    删除远端 repo
    git remote rm <name>

    git push -u origin master

    origin是远端 repo 的名字, master 是本地分支的名字

    设置 git config user

    git config --global --edit
    #全局配置在 ~/.gitconfig
    [user]
        name = myusername
        email = [email protected]
    
    当前项目配置在
    .git/config
    

    想要保存一个空目录时,一般添加一个空文件.gitkeep,比如

    secrets/.gitkeep

    macOS 自动保存到 keychain

    git config --global credential.helper osxkeychain
    
  • nginx 499 原因

    Content-Length field missed

  • nginx server

    #图片,js,css过期时间31天 location ~ \.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {     expires 31d; }
    location ~ /\.ht {     deny all; }
    #禁止对SVN目录的访问     location ~* /\.svn {     return 404; }

  • sysctl的调优

    /proc/sys/net/core/somaxconn 设置

    清理 cache

    echo 3 > /proc/sys/vm/drop_caches
    echo 655350 > /proc/sys/net/netfilter/nf_conntrack_max
    echo 655350 > /proc/sys/net/nf_conntrack_max
    echo 1200 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established

    客户端端口范围

    sysctl -a | grep port_range
    net.ipv4.ip_local_port_range = 32768	61000
    
  • perf flame graph使用

    perf record -F 99 -p PID -g — sleep 10
    perf script | ./stackcollapse-perf.pl > out.perf-folded /flamegraph.pl out.perf-folded>ou.svg

  • salt使用

    重启

    sudo systemctl restart salt-minion.service

    向 minion 下发文件

    salt-cp 'app034' bin/cmdb-register-container-by-ip.sh /tmp/
    
    app034:
        ----------
        /tmp/cmdb-register-container-by-ip.sh:
            True