git worktree介绍
git worktree 是git提供的连接到统一仓库的多个工作树,一个主仓库可以引出多个不同分支的工作树并行开发
git worktree 在表现结果上来看和git clone很接近。但是git worktree会同步本地仓库,本质上使用的是一个仓库。
worktree命令帮助
git worktree
列出所有worktree
git worktree list
添加worktree
git worktree add [新路径] [分支]
举例
git worktree add ../branch-testworktree branch-testworktree
移动worktree
git worktree move [原路径] [新路径]
举例
git worktree move ../branch-testworktree ../branch-testworktree-new
删除worktree
git worktree remove [路径]
举例
git worktree remove ../branch-testworktree
删除清理worktree
直接删除目录
然后执行
git worktree prune
说明
git worktree prune 命令用于清理工作树中已被删除的分支或关联的工作树。当你在主仓库中删除了一个分支,但工作树目录中仍然存在与该分支关联的工作树时,可以使用该命令进行清理。
在执行 git worktree prune 命令后,Git 会遍历工作树目录中的所有工作树,检查它们是否与主仓库中的分支关联。如果某个工作树不再关联任何分支,它将被认为是已删除的,Git 将删除该工作树的相关信息。
注意
当存在worktree是某一个分支时,另一个worktree不能切换当前分支
git拆分某个分支到独立的仓库
克隆指定分支到新目录
git clone --single-branch --branch <拆分的原分支名称> git@10.0.0.66:company/paper2024.git saishi2026
cd saishi2026
清理远程关联(断开与原仓库的联系)
git remote remove origin
删除全部本地tag
git tag -d $(git tag -l)
添加新远程地址
git remote add origin <新仓库URL>
查看当前远程仓库地址
git remote -v
增加仓库B的远程地址
git remote add paper2024-repo <仓库B的Git地址>
删除指定远程仓库
git remote remove paper2024-repo
gitee初始化基本操作
Git查看全局设置
git config --global --list
git全局设置用户名和邮箱
git config --global user.name "whytest"
git config --global user.email "whytest@v235.top"
git全局设置独立的ssh私钥位置指定
git config --global core.sshCommand 'ssh -i /c/user/whytest/.ssh/id_rsa'
创建SSHKey命令如下
ssh-keygen -t rsa -C "whytest@v235.top"
ssh-keygen生成以后注意
id_rsa 为私钥,不能泄露出去
id_rsa.pub 为公钥,可以放心的告诉别人
非全局操作去掉--global即可
git远程仓库推送关闭
git config branch.<你的分支名>.pushRemote none
git config --unset branch.<你的分支名>.pushRemote
git补丁操作
生成最近 1 个提交的补丁
git format-patch -1 <提交哈希值>
生成工作区差异补丁
git diff > changes.patch
生成已暂存文件的补丁
git diff --staged > staged.patch
应用补丁命令:git am(会自动提交)
应用单个补丁
git am 0001-xxxx.patch
批量应用多个补丁
git am *.patch
简单方式应用补丁:git apply(仅修改文件,再自行提交)
检查补丁是否可用(推荐先执行)
git apply --check changes.patch
应用补丁
git apply changes.patch
放弃操作,如果 `git am` 过程中出错,想彻底放弃并还原现场。
git am --abort
解决冲突,解决完冲突文件后,执行此命令继续应用。
git am --continue
撤销补丁,如果你用 `git apply` 应用错了,可以用 `-R` 反向撤销。
git apply -R changes.patch