Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在旧git提交中编辑文件?如何编辑?_Git - Fatal编程技术网

是否可以在旧git提交中编辑文件?如何编辑?

是否可以在旧git提交中编辑文件?如何编辑?,git,Git,让我们假设我是一个有承诺的git回购 HEAD commit999: Edit file999 commit998: Edit file998 ... commit3: Edit file3 commit2: Edit file2 and file1 commit1: Edit file1 我意识到文件1不应该在commit2中编辑。我想还原commit2中文件1上的更改,但我不想为此还原进行新的提交 有可能做我想做的吗?如果是这样,我该怎么做 (只有我使用这个git回购。所以我不在乎任何肮脏

让我们假设我是一个有承诺的git回购

HEAD
commit999: Edit file999
commit998: Edit file998
...
commit3: Edit file3
commit2: Edit file2 and file1
commit1: Edit file1
我意识到文件1不应该在commit2中编辑。我想还原commit2中文件1上的更改,但我不想为此还原进行新的提交

有可能做我想做的吗?如果是这样,我该怎么做

(只有我使用这个git回购。所以我不在乎任何肮脏的东西,例如,
push-f origin master

这可以通过“修改修订版2”来完成,然后在上面挑选所有的东西。。。。大概是这样的:

git签出委员会2
git签出头~1--#签出文件1与上一版本相同
git提交--修改--不编辑--创建新修订
git cherry pick commit2..commit999#对commit2和commit999使用旧版本ID
git checkout-b new branch#如果您愿意,可以创建并签出新分支

那应该行。

阅读