一、git 撤回或修改之前提交并且不影响 被撤回或修改提交之后的提交信息操作
1. 首先将指定分支克隆下来并备份
git clone -b xxx httpxxxxx // xxx 分支名
cp xxx xxx_backup
2. 先备份对应提交的patch 并移动到别的目录中,防止后续git reset 的时候清掉
git format-match commitid -1
mv ./0001xxxxx.patch ../
3. 回退到要撤回或修改的提交的前一个提交
git log // 查看提交号
commit id4
xxx
commit id3
xxx
commit id2
xxx
commit id1
xxx
…………
// 假如要撤回或修改的为comit id2,则先退到commit id1
git reset --hard id1
// 若修改提交,可以将之前备份的patch先打上去
git apply ../0001xxx.patch
// 若要更改提交人信息 设置git配置
git config user.name "YourName"
git config user.email "[email protected]"
// 进行提交
git commit -m "xxxx"
// 将修改提交的后续提交接入
git cherry-pick id3^..id4 // 指定一段连续的提交接入当前提交下,左值为较为旧的提交,右值为较为新的提交
// 最后 push 到指定的分支xxx, 一般push是会拒绝提交,加上-f 就可以,但是-f 慎用
git push origin xxx -f
二、其他git小技巧
1. 显示该文件夹及其内部文件的所有提交记录简要信息
git log --oneline
2. 每次提交中具体修改了哪些文件
git log --name-status
3. 每次提交的详细内容变化
git log -p
4. 某几行的历史提交信息
git blame -L start,end
5. --recursive 一起克隆子库,等价于先克隆主库在进入主库目录中git submodule update --init等命令克隆子库, --depth只克隆下来指定数量的提交记录
git clone --recursive https://github.com/xxxx --depth=10
标签:git,技巧,--,xxx,提交,commit,克隆
From: https://www.cnblogs.com/supersimple/p/18498881