Git Merge: Entfernen von Dateien, die ich behalten möchte!

Wie können Sie zwei Zweige in Git zusammenführen und dabei beibehalten?notwendig Dateien aus einer Filiale?

Wenn beim Zusammenführen von zwei Zweigen eine Datei in einem Zweig und nicht in einem anderen Zweig gelöscht wurde, wird die Datei letztendlich gelöscht.

Zum Beispiel:

Eine Datei ist im Master vorhanden, wenn Sie eine neue Verzweigung erstellenSie entfernen die Datei vom Master, da wir sie (noch) nicht benötigen.Sie nehmen Änderungen in der Verzweigung vor, um eine Funktion hinzuzufügen.was auf der vorhandenen Datei beruhtSie machen Fehlerbehebungen in Master (kann nicht verworfen werden)Sie verschmelzen eines Tages und die Datei ist weg!

Wie zu reproduzieren:

Erstelle ein Git Repo mit einer Datei.

git init
echo "test" > test.txt
git add .
git commit -m "initial commit"

Erstellen Sie eine Niederlassung

git branch branchA

Löschen Sie die Datei im Master

git rm test.txt
git commit -m "removed file from master"

Nehmen Sie in branchA JEGLICHE Änderungen vor, die die gelöschte Datei nicht berühren (sie muss unverändert bleiben, um Konflikte zu vermeiden).

git checkout branchA
touch something.txt
git add .
git commit -m "some branch changes"

Von hier aus, wie ich diese beiden Zweige zusammengeführt habe, wird die Datei test.txt gelöscht. Angenommen, wir wären essich auf die Datei verlassen zumbranchA, das ist ein großes Problem.

Fehlgeschlagene Beispiele:

1 zusammenführen

git checkout branchA
git merge master
ls test.txt

2 zusammenführen

git checkout master
git merge branchA
ls test.txt

Rebase 1

git checkout branchA
git rebase master
ls test.txt

Antworten auf die Frage(5)

Ihre Antwort auf die Frage