我想删除 git 存储库上的特定提交,以便能够删除应用到我的软件的“修复”。
这是一个 EMC:
#!/bin/bash
rm -rf TEST .git
mkdir TEST
git init
echo "info 1" > TEST/file.txt
git add TEST/
git commit -m "Initial Commit"
echo "info 2" >> TEST/file.txt
git add TEST/
git commit -m "Commit Fix 1 on file"
echo "info 3" >> TEST/file.txt
git add TEST/
git commit -m "Commit Fix 2 sur file"
file.txt 的结果将是
info 1
info 2
info 3
我想获取没有“info 2”行的文件。 git revert 会产生冲突,我想避免管理这些冲突。也就是说,像提交“Commit Fix 1 on file”这样的操作永远不会追加。
我在没有任何 luke 的情况下尝试了 revert 或 rebase,所以如果你有其他想法,我很乐意提供一些帮助。
此致
最佳答案
要还原特定提交,您需要确定 hash
提交,使用 git log
, 然后使用 git revert <commit>
创建一个删除这些更改的新提交。
关于git revert 一个特定的提交避免 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12777855/