合并分支而不会丢失文件

JNe*_*ens 2 git merge

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

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

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

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

我怎样才能做到这一点?

axi*_*iac 5

git merge --no-commit feature
Run Code Online (Sandbox Code Playgroud)

在不提交的情况下准备合并。

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

git checkout master -- file1 file2 ...
Run Code Online (Sandbox Code Playgroud)

在那里file1file2等你的分支删除的文件,并希望保持合并后(他们被列为deleted:在输出git status。)可以,还有,签一个文件在同一时间,甚至从你另一支让他们需要。

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

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

merge操作过程中,直到您成功完成其使用git commit,或者你放弃它使用git merge --abort。合并未完成时,某些操作不允许(或失败)。