Ich verwende meinen master
Zweig, um 'Material' Dateien zu halten, die in untergeordneten Zweigen für verschiedene Projekte verwendet werden. Sagen wir, ich arbeite für eine Firma, die sowohl Waggons als auch Abfahrtsskier herstellt. Mein Masterzweig würde alle Dateien enthalten, die als Teile für diese Produkte verwendet werden. Jedes Produkt ist von master
(wagon
Zweig, ski
Zweig, etc) verzweigt. Die Teile, die nicht für jedes Projekt benötigt werden, werden dann mit git rm
entfernt (obwohl Ski auf einem Wagen tun klingen wie Spaß).Wie kann ich Git sagen, eine Datei komplett zu vergessen?
Das Problem ist, wenn ich meine master
Zweig verschmelzen (Material ändert sich vielleicht) in ein Projekt Zweig (Wagen zum Beispiel) git
denkt, dass ich wirklich die Änderungen an den Dateien wollen, die ich git rm
habe ‚d in Vergessenheit, und fügt sie zurück für mich - Version Meister der Skier links in Baum wie Code unten gezeigt.
Wie kann ich git
-wirklich und wirklich vergessen über eine Datei ich ihm gesagt habe Tracking zu vergessen und zu stoppen?
einige Teile master
hinzufügen und begehen:
$ pwd
/tmp/parts
$ git init
Initialized empty Git repository in /tmp/parts/.git/
$ echo rubber > wheels
$ echo steel > skis
$ echo vinyl > seat
$ echo wood > sides
$ ls
seat sides skis wheels
$
$ git add .
$ git commit -a -m 'initial parts'
[master (root-commit) ca7610e] initial parts
4 files changed, 4 insertions(+)
create mode 100644 seat
create mode 100644 sides
create mode 100644 skis
create mode 100644 wheels
erstellen wagon
Projekt Zweig und entfernen Sie die Teile, die wir nicht brauchen, auf einem Wagen:
$ git checkout -b wagon
Switched to a new branch 'wagon'
$ ls
seat sides skis wheels
$ git rm skis
rm 'skis'
$ git rm seat
rm 'seat'
$ git commit -a -m 'initial wagon design'
[wagon 384b246] initial wagon design
2 files changed, 2 deletions(-)
delete mode 100644 seat
delete mode 100644 skis
Das Engineering Das Team hat beschlossen, einige Materialien zu ändern. Commit jene Änderungen master
so dass sie für alle unsere Projekte zur Verfügung:
$ git checkout master
Switched to branch 'master'
$ ls
seat sides skis wheels
$
$ echo 'titanium' > skis
$ echo 'metal' > sides
$ git commit -a -m 'design requirements call for stronger sides and skis'
[master a8bf4c4] design requirements call for stronger sides and skis
2 files changed, 2 insertions(+), 2 deletions(-)
Wir im wagon
Projekt einige der Änderungen müssen so verschmelzen master
sie zu bekommen, aber jetzt git beschwert:
$ git checkout wagon
Switched to branch 'wagon'
$ git merge master
CONFLICT (modify/delete): skis deleted in HEAD and modified in master. Version master of skis left in tree.
Automatic merge failed; fix conflicts and then commit the result.
Daumen hoch für komisch den Punkt fehlt.Sie missbrauchen 'git' und müssen wirklich darüber nachdenken, ein besseres Paket für das zu finden, was Sie tun. –
Kann sein, aber wenn Sie eine andere Lösung haben, um dies zu erreichen, bitte posten Sie es. – wufoo