删除git pull冲突文件
删除git pull
冲突文件
如zig在某次更新时,出现如下错误:
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), 653 bytes | 32.00 KiB/s, done.
From https://hub.fastgit.org/ziglang/zig
81e2034d4..594271f8d master -> origin/master
Updating 81e2034d4..594271f8d
error: Your local changes to the following files would be overwritten by merge:
CMakeLists.txt
doc/langref.html.in
src/AstGen.zig
src/Sema.zig
src/Zir.zig
test/behavior.zig
test/compile_errors.zig
Please commit your changes or stash them before you merge.
Aborting
编译gitmerge.vsh
脚本,完成自动删除冲突文件、重新拉取文件:
#!/usr/bin/env -S v run
import io.util
println('gitmerge v0.0.3 by Zhuo Nengwen at 2021-09-04\n')
// 获取git pull错误内容
mut f, file_name := util.temp_file() ?
f.close()
system('git pull 2>$file_name')
// 检查是否有冲突文件
content := read_lines(file_name) ?
if content.len > 3 {
mut start := 0
for content[start] != 'error: Your local changes to the following files would be overwritten by merge:' {
start++
}
mut end := content.len - 1
for content[end] != 'Please commit your changes or stash them before you merge.' {
end--
if end < 0 {
break
}
}
// 如果冲突太多,最后只有一行Aborting信息
if end < 0 {
end = content.len - 1
for content[end] != 'Aborting' {
end--
}
}
// 删除所有冲突文件
for name in content[start + 1..end] {
new_name := name.trim_space()
cmd := 'rm $new_name'
println(cmd)
system(cmd)
}
// 重新拉取
println('')
system('git pull')
}
// 删除临时文件
system('rm $file_name')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话