Git常用命令

以下是 Git 常用命令,分为核心操作、分支管理、远程协作、撤销与恢复等类别:


一、基础操作

  1. 初始化仓库

    git init
  2. 克隆远程仓库

    git clone <仓库URL>
  3. 查看状态

    git status
  4. 添加文件到暂存区

    git add <文件名>         # 添加单个文件
    git add .              # 添加所有修改的文件
  5. 提交到本地仓库

    git commit -m "提交说明"

二、分支管理

  1. 查看分支

    git branch              # 本地分支
    git branch -a          # 所有分支(本地+远程)
  2. 创建/切换分支

    git branch <分支名>      # 创建分支
    git checkout <分支名>    # 切换分支
    git checkout -b <分支名> # 创建并切换分支
  3. 合并分支

    git merge <分支名>       # 将指定分支合并到当前分支
  4. 删除分支

    git branch -d <分支名>   # 删除本地分支
    git push origin --delete <分支名>  # 删除远程分支

三、远程仓库协作

  1. 关联远程仓库

    git remote add origin <仓库URL>
  2. 推送代码到远程

    git push origin <分支名>
  3. 拉取远程更新

    git pull origin <分支名>  # 拉取并合并
    git fetch origin         # 仅拉取不合并
  4. 查看远程仓库

    git remote -v

四、撤销与恢复

  1. 撤销工作区修改

    git checkout -- <文件名>   # 撤销未暂存的修改
  2. 撤销暂存区文件

    git reset HEAD <文件名>    # 从暂存区移出,保留修改
  3. 回退到某次提交

    git reset --hard <commit_id>  # 彻底回退(谨慎使用)
    git reset --soft <commit_id>  # 保留修改内容
  4. 恢复已删除的文件/提交

    git reflog               # 查看操作记录
    git checkout <commit_id> -- <文件名>

五、查看与对比

  1. 查看提交记录

    git log --oneline       # 简洁版
    git log --graph         # 图形化显示分支
  2. 对比文件差异

    git diff                # 工作区与暂存区差异
    git diff --staged       # 暂存区与最新提交差异
    git diff <分支1> <分支2>  # 两个分支差异

六、储藏与标签

  1. 储藏临时修改

    git stash               # 保存工作现场
    git stash pop           # 恢复最近储藏的内容
  2. 标签管理

    git tag -a v1.0 -m "版本说明"  # 创建标签
    git push origin --tags         # 推送所有标签到远程

日常开发流程示例

# 1. 拉取最新代码
git pull origin main

# 2. 创建功能分支
git checkout -b feature/login

# 3. 开发后提交
git add .
git commit -m "feat: 添加用户登录"

# 4. 推送到远程
git push origin feature/login

# 5. 合并到主分支(通过 Pull Request)
git checkout main
git merge feature/login

掌握这些命令可覆盖 90% 的日常场景。

PIL库

PIL是python中用于图片处理的库

通道

模式

通道说明

示例

L

灰度(1个通道,0-255)

黑白图像

RGB

红、绿、蓝(3通道)

彩色图像

RGBA

RGB + 透明度(4通道)

带透明背景的PNG

CMYK

印刷四色(4通道)

印刷用图像

P

调色板模式(1通道+调色板)

GIF

1

二值图像(1通道,0/1)

黑白位图

L:灰度图                                              RGB:彩色图                                                             1:二值图

PIL/Pillow库常用函数大全

以下是 PIL/Pillow 库的核心常用函数分类汇总:


一、图像打开、创建与保存

1. 图像打开

from PIL import Image

# 基本打开
img = Image.open("image.jpg")  # 自动检测格式
img = Image.open("image.png", mode='RGB')  # 指定模式

2. 创建图像

# 创建新图像
img = Image.new(mode, size, color)
img = Image.new("RGB", (800, 600), "white")
img = Image.new("RGBA", (800, 600), (255, 0, 0, 128))

# 从数组创建
import numpy as np
arr = np.random.randint(0, 255, (300, 400, 3), dtype=np.uint8)
img = Image.fromarray(arr, mode="RGB")

3. 保存图像

# 基本保存
img.save("output.jpg")
img.save("output.png", format="PNG")  # 显式指定格式

二、图像基本操作

1. 尺寸调整

PIL提供了7种标准的transpose()操作:

常量

说明

等效操作

Image.FLIP_LEFT_RIGHT

0

水平翻转(左右镜像)

img.transpose(Image.FLIP_LEFT_RIGHT)

Image.FLIP_TOP_BOTTOM

1

垂直翻转(上下镜像)

img.transpose(Image.FLIP_TOP_BOTTOM)

Image.ROTATE_90

2

顺时针旋转90°

img.transpose(Image.ROTATE_90)

Image.ROTATE_180

3

旋转180°

img.transpose(Image.ROTATE_180)

Image.ROTATE_270

4

顺时针旋转270°(逆时针90°)

img.transpose(Image.ROTATE_270)

Image.TRANSPOSE

5

转置(旋转90°后水平翻转)

img.transpose(Image.TRANSPOSE)

Image.TRANSVERSE

6

横向转置(旋转90°后垂直翻转)

img.transpose(Image.TRANSVERSE)

# 调整大小
img_resized = img.resize((width, height), resample=Image.Resampling.LANCZOS)
img_resized = img.resize((width, height), resample=Image.Resampling.BICUBIC)

# 旋转
img_rotated = img.rotate(45, expand=True)  # expand=True避免裁剪
img_rotated = img.rotate(30, fillcolor="white")  # 填充背景色

# 翻转
img_flipped = img.transpose(Image.Transpose.FLIP_LEFT_RIGHT)
img_flipped = img.transpose(Image.Transpose.FLIP_TOP_BOTTOM)
img_flipped = img.transpose(Image.Transpose.ROTATE_90)

2. 裁剪与拼接

# 矩形裁剪
box = (left, top, right, bottom)  # 坐标
img_cropped = img.crop(box)

# 中心裁剪
width, height = 200, 200
left = (img.width - width) // 2
top = (img.height - height) // 2
img_center = img.crop((left, top, left+width, top+height))

# 图像拼接
images = [img1, img2, img3]
total_width = sum([i.width for i in images])
max_height = max([i.height for i in images])
new_img = Image.new("RGB", (total_width, max_height))
x_offset = 0
for im in images:
    new_img.paste(im, (x_offset, 0))
    x_offset += im.width

3. 图像粘贴与合成

# 基本粘贴
img.paste(patch, (x, y))  # 直接覆盖
img.paste(patch, (x, y), mask=patch)  # 带透明通道

三、图像处理

色彩空间转换

# 模式转换
img_gray = img.convert("L")  # 灰度
img_rgb = img.convert("RGB")  # RGB
img_rgba = img.convert("RGBA")  # RGBA
img_cmyk = img.convert("CMYK")  # CMYK
img_palette = img.convert("P", palette=Image.Palette.ADAPTIVE, colors=256)  # 调色板

四、绘制文字

2. 文字绘制

# 加载字体
font = ImageFont.truetype("arial.ttf", size=20)
font = ImageFont.load_default()  # 默认字体

# 绘制文字
draw.text((x, y), "Hello PIL", fill="white", font=font, anchor="lt")
draw.text((x, y), "多行文字\n第二行", fill="white", font=font, spacing=10)

# 带背景框的文字
bbox = draw.textbbox((x, y), "Text", font=font)  # 获取边界框
draw.rectangle(bbox, fill="black")  # 绘制背景
draw.text((x, y), "Text", fill="white", font=font)

五、图像信息与处理

1. 获取图像信息

# 基本信息
print(f"格式: {img.format}")
print(f"模式: {img.mode}")
print(f"尺寸: {img.size}")  # (width, height)
print(f"宽度: {img.width}")
print(f"高度: {img.height}")
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐