gpt4 book ai didi

将旧分支 merge 到主分支时,Git 不会应用已删除的文件。我如何告诉 Git 应用已删除的文件?

转载 作者:太空狗 更新时间:2023-10-29 13:05:50 31 4
gpt4 key购买 nike

我有一个 master 和一个 dev 分支。我在两个方面都做出了 promise 。我还删除了 dev 中的一些文件。我在 master 中做了其他提交,所以这个 master 分支是最近的。

我的问题是将 dev merge 到 master 不会删除文件。

Git 认为这些文件存在于 master 中,因此在 merge 期间保留它们。

我如何 merge 这两个分支并强制 Git 应用在 dev 中所做的所有提交?包括已删除的文件。

感谢您的帮助!

最佳答案

当与分支中的更改没有冲突时, merge 肯定会删除文件。

git does not preserve files during merging if they are deleted in the merging branch. - Nils_M

为了向自己证明这一点,我不得不尝试重现您的场景。观看此演示,希望您能看到自己所做的不同之处。

创建一个新的存储库

mkdir test
cd test
git init

Initialized empty Git repository in /test/.git/

创建并添加一些文件到master分支

echo one > 1.txt
echo two > 2.txt
git add .
git commit -m "init repo"

[master (root-commit) feaa910] init repo
2 files changed, 2 insertions(+)
create mode 100644 1.txt
create mode 100644 2.txt

创建新分支并添加/删除一些文件

git checkout -b new

Switched to a new branch 'new'

echo three > 3.txt
rm 2.txt
git add .
git status

On branch new
Changes to be committed:
(use "git reset HEAD ..." to unstage)

deleted: 2.txt
new file: 3.txt

git commit -m "changes in new"

[new db6b1a0] changes in new
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 2.txt
create mode 100644 3.txt

在 master 中提交更多更改

git checkout master

Switched to branch 'master'

echo update >> 1.txt 
git commit -am "update master"

[master 912a520] update master
1 file changed, 1 insertion(+)

tree

.
├── 1.txt
└── 2.txt

验证文件在新文件中是否仍被删除

git checkout new

Switched to branch 'new'

tree

.
├── 1.txt
└── 3.txt

将新的 merge 到主控中

git checkout master

Switched to branch 'master'

git merge new master

Removing 2.txt
Merge made by the 'recursive' strategy.
2.txt | 1 -
3.txt | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 2.txt
create mode 100644 3.txt

tree

.
├── 1.txt
└── 3.txt

如您所见,在 new 分支中删除的文件 2.txt 现在在 merge 后肯定会在 master 中删除。

关于将旧分支 merge 到主分支时,Git 不会应用已删除的文件。我如何告诉 Git 应用已删除的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122124/

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