gpt4 book ai didi

git - 如何将修改和重命名提交拆分为 git 中的单独提交?

转载 作者:行者123 更新时间:2023-12-02 14:58:18 29 4
gpt4 key购买 nike

在 git 工作树中,我有一个文件“foo”。我对该文件进行了重大修改,然后将其重命名为“bar”。 Git 将其检测为已删除/新文件。根据this answer ,为了让 git 检测到它们是同一个文件,应该先提交移动,然后再提交修改。鉴于文件已被修改和移动(但尚未暂存或提交),首先提交移动操作,然后再提交修改(确保我不会在此过程中丢失我的修改)的过程是什么?

同样,如果移动/修改已经在单个提交中提交,那么执行此操作的过程是什么?

最佳答案

老实说,最安全的做法是:

$ mv bar bar.safe   # move bar someplace safe
$ git checkout foo # get the old copy of foo
$ git mv foo bar # tell git about the move
$ git commit -m 'I moved foo to bar'
$ mv bar.safe bar
$ git add bar
$ git commit -m 'But bar is totally changed now'

如果移动/修改已经提交,最安全的做法是撤消提交(在默认 --mixed 模式下,更改索引但保持工作目录不变):

$ git reset HEAD^

然后使用上面的过程。

从技术上讲,您可以使用 git update-index 独立于工作目录的内容直接操作索引(参见 --cacheinfo 参数),但我认为上面的方法更直接。

关于git - 如何将修改和重命名提交拆分为 git 中的单独提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51886489/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com