分类 运维 下的文章

git reset 是一个 Git 命令,用于将当前分支的 HEAD 指针和索引(暂存区)回退到指定的提交或位置,同时也可以选择是否修改工作区。

git reset 命令的常见用法有以下几种:

  1. git reset <commit>:将当前分支的 HEAD 指针和索引回退到指定的提交 <commit>,但不修改工作区。这样做会将之后的提交从历史记录中移除。
  2. git reset --hard <commit>:将当前分支的 HEAD 指针、索引和工作区都回退到指定的提交 <commit>。这将丢失之后的提交和未提交的修改,请谨慎使用。
  3. git reset --soft <commit>:将当前分支的 HEAD 指针回退到指定的提交 <commit>,但保留索引和工作区的修改。这样做会将之后的提交标记为未提交的修改,方便进行修改后重新提交。

<commit> 可以是提交的哈希值、分支名、标签名或相对引用(如 HEAD~n,表示往前数第 n 个提交)。

需要注意的是,使用 git reset 命令会改变提交历史,因此在使用前请确保你了解其影响并小心操作。如果已经将修改推送到远程仓库,请谨慎使用 --hard 参数,以免造成数据丢失或冲突。

另外,git reset 命令还有其他选项和用法,可以通过 git reset --help 查看 Git 的文档或参考 Git 的官方文档来获取更详细的信息和示例。

在http节点中加入如下配置,即可开启gzip

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

生成密钥对

ssh-keygen -t ed25519 -C "your_email@example.com"
#or
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f D:\ssh\github_id_rsa
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f D:\ssh\gitee_id_rsa

选项

  • -b:指定密钥长度;
  • -e:读取openssh的私钥或者公钥文件;
  • -C:添加注释;
  • -f:指定用来保存密钥的文件名;
  • -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
  • -l:显示公钥文件的指纹数据;
  • -N:提供一个新密语;
  • -P:提供(旧)密语;
  • -q:静默模式;
  • -t:指定要创建的密钥类型。

配置config文件

C:\Users\liugang\.ssh 文件夹添加config文件

Host github.com
    HostName github.com
    User your_email@example.com
    PreferredAuthentications publickey
    IdentityFile D:\ssh\github_id_rsa

Host gitee.com
    HostName gitee.com
    User your_email@example.com
    PreferredAuthentications publickey
    IdentityFile D:\ssh\gitee_id_rsa

用ssh进行git操作

第一次使用需要生成指纹

git

git基础使用

创建一个新仓库

echo "# git-init" >> README.md #创建文件
git init #初始化
git add README.md #添加到暂存区
git commit -m "first commit" #提交到本地仓库
git branch -M main    #切换到main分支
git remote add origin git@github.com:tsingliu449966/git-init.git #添加origin远程仓库地址
git push -u origin main #推送到远程仓库的main分支

推送已存在的仓库

git remote add origin git@github.com:tsingliu449966/git-init.git #添加origin远程仓库地址
git branch -M main #切换到main分支
git push -u origin main #推送到远程仓库的main分支

查看日志

#查看状态
git status
#查看日志
git log
#查看所有操作日志 包括reset、分支切换等
git reflog
#回退提交
git reset --hard 6619fad
#创建dev分支
git branch dev
#切换到dev分支
git checkout dev

用户

git config --global --list
git config user.name
git config user.email

git config --global user.name "yourname"
git config --global user.email "youremail@xx.com"

暂存工作区

git stash
git stash apply
git stash --help

检查文件不同

git diff

git flow

新建分支

#创建分支
git branch dev

#创建并切换分支
git checkout -b dev

解决冲突

#拉取代码
git pull origin dev

#手动提交
git fetch origin dev
git merge FETCH_HEAD

git fetch origin some-branch:dev

#推送本地feature分支到远程feature分支
git push origin feature:feature

git fetch origin feature:dev
git merge FETCH_HEAD

git pull origin feature

回退版本

git reset --hard HEAD@{1}
git reset --hard 44d4c4d
git reset --hard head^
git reset --hard head~1

合并分支

#切换到dev分支
git checkout dev
#合并feature到dev分支
git merge feature

#切换到master分支
git checkout master
#合并dev到master分支
git merge dev

标签

git tag v1.0.0
git push origin master --tags

git tag -d v1.0.0
git tag list

git tag v1.1.0
git push origin :refs/tags/v1.0.0 #删除远程tag
git push origin :feature #删除远程分支

git branch -D feature #删除本地分支
git checkout -- test.txt #丢弃工作区的改动

git add test1.txt,test2.txt
git reset HEAD test2.txt #撤回加入暂存区的文件

git reset --hard head #切换回上一次提交

土豪绕道,土豪可以使用共享带宽、多核CPU、高内存、云盘等……
本文主要讨论如何充分使用多个性能低下与主机。为什么买配置低的?因为作者穷啊,考虑到性价比
双11主机上搞活动,云主机特别便宜,入手了10台入门云主机,每台10台1核1G2M,50G硬盘的配置,10台就有10个独立ip,20M带宽,500G硬盘,想想20M带宽可不便宜,就想着充分利用这些带宽

下面是使用nginx负载均衡搭建静态服务器的配置,大家有什么好的建议

定义上服务器,用一致性哈希hash consistent,可以充分利用硬盘,不同请求的 url文件会缓存到不同的服务器磁盘

upstream backend { 
hash $uri consistent;   
server 10.5.245.1:30018;
server 10.5.245.2:30018;
server 10.5.245.3:30018;
server 10.5.245.4:30018;
server 10.5.245.5:30018;
server 10.5.245.6:30018;
server 10.5.245.7:30018;
server 10.5.245.8:30018;
server 10.5.245.9:30018;
server 10.5.245.10:30018;
} 

nginx反向代理,如何是内网ip请求,则缓存文件,

#PROXY-START/

location ^~ /oss/
{
    proxy_pass http://www.liugang.net/;
    proxy_set_header Host www.liugang.net;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    


    add_header X-Cache $upstream_cache_status;
    #Set Nginx Cache

    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    if ($ckey = ""){
    set $ckey $uri;
    }
    proxy_cache_key $ckey;
    proxy_cache_valid 200 304 301 302 30d;

}
location ^~ /  
{
    if ($proxy_add_x_forwarded_for ~* "10.5.245.")
    {
         set $ckey $uri;
        rewrite ^/(.*) /oss/$1 last;
    }
    proxy_pass http://backend/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    expires 24h;

}
#PROXY-END/

充分利用带宽,可以在域名解析时候添加10个A记录指向不同的ip即可