git - merge 分支而不丢失文件

标签 git merge

我从 master 分支创建了一个功能分支,然后(做了一些工作并且)不得不删除这个分支上的许多文件。现在,我想将更改 merge 回 master,但不会丢失我在功能分支上删除的 master 上的文件。

简而言之,这是我所做的:

(master)> git checkout -b feature
# deleted many files
> git checkout master
> git merge ??? # how to merge back without losing files

换句话说,当文件存在于功能分支上时,而不是将其 merge 到主分支中。在feature分支上删除文件时,不 merge master上的删除操作,而是保留文件。

我该怎么做?

最佳答案

运行

git merge --no-commit feature

准备 merge 而不提交。

然后检查更改(git status)并运行:

git checkout master -- file1 file2 ...

其中 file1file2 等是您在分支上删除并希望在 merge 后保留的文件(它们被列为 deleted:git status 的输出中。)您也可以一次 checkout 一个文件,如果需要,甚至可以从另一个分支获取它们。

然后使用 git add . 暂存刚刚 checkout 的文件,当您对更改感到满意时,运行 git commit 以完成 merge 。

如果你犯了错误或者只是想中止 merge ,你可以运行 git merge --abort 并重新开始。

merge 操作正在进行,直到您使用 git commit 成功完成它或使用 git merge --abort 中止它。 merge 未完成时,某些操作不允许(或失败)。

关于git - merge 分支而不丢失文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48268981/

相关文章:

git - 如何有效地获取特定提交的 GitHub 存储库?

git - 如何从远程 git repo 中只获取分支名称?

git show <commit> --oneline 不在线显示

git - 无法在 git 上获取 Http 工作

algorithm - 两个排序数组的中位数

javascript - 使用 Web Audio API 将多个 ArrayBuffer 合并/分层为一个 AudioBuffer

solaris 10 上的 git 客户端和依赖项

c# - 合并两个字符串(文本文件)

visual-studio-2010 - TFS 未在目标位置显示 Dev 分支以进行合并

python - 合并列上的 DataFrame 列表?