git diff --name-only
git diff --name-only 1b0c2b1 5609e6f
dest="/data/data/com.termux/files/home/tmp"
git diff --name-only 1b0c2b1 5609e6f | xargs -I {} cp --parents {} "$dest"
导出两个提交之间的所有差异到单个补丁文件
git diff 1b0c2b1 5609e6f > changes.patch
添加统计信息
git diff --stat 1b0c2b1 5609e6f > changes_with_stat.patch
包含二进制文件(如果需要)
git diff --binary 1b0c2b1 5609e6f > changes_binary.patch
如果你不确定两个提交之间是否有图片或其他二进制文件的修改,为了确保补丁的完整性,总是使用:
git diff --binary
虽然这会使补丁文件变大,但能保证所有类型的文件变化都被完整包含。这是制作"可应用补丁"的安全做法,特别是当补丁需要分发给其他人或在其他环境中应用时。
检查补丁是否能正常应用(不实际修改)
git apply --check changes.patch
应用补丁到工作区
git apply changes.patch
应用补丁并暂存更改(相当于 git add)
git apply --cached changes.patch
显示应用过程中的详细信息
git apply --verbose changes.patch
忽略空格差异
git apply --ignore-space-change changes.patch
1. 先保存当前状态(保险措施)
git stash # 或 git commit -m "临时保存"
2. 查看要重置到的提交
git log --oneline
3. 执行硬重置
git reset --hard <目标提交>
4. 如果误操作,可以恢复(仅限于未垃圾回收时)
git reflog # 找到之前的提交
git reset --hard HEAD@{1} # 恢复,这是一个强大的 Git 恢复命令,用于强制重置到 HEAD 的上一个位置。
mkdir -pv $PREFIX/etc/samba
cp $PREFIX/share/doc/samba/smb.conf.example $PREFIX/etc/samba/smb.conf
vim $PREFIX/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Termux Samba Server
netbios name = termux-smb
security = user
map to guest = bad user # 非root手机改为bad user,允许匿名访问
dns proxy = no
端口设置(重要)
非root手机使用4445和1139端口(默认)
root手机可改为445和139端口
[SharedFolder]
path = /data/data/com.termux/files/home/shared_folder
read only = no
browsable = yes
guest ok = yes # 允许匿名访问
create mask = 0644
directory mask = 0755
mkdir ~/shared_folder
chmod 755 ~/shared_folder
chown termux:termux ~/shared_folder
https://github.com/LinuxDroidMaster/Termux-Projects/blob/main/projects/homelab_server.md#first-steps