2012-09-06 44 views
4

我的分支「branch_a」有一個文件(file_a.txt),它不應該與「master」上類似名稱的文件不同。我想以這種方式改變分支,使得這個改變的文件從分支中被移除,也就是說,使得來自「主」的未改變的文件再次存在,而不是該文件的改變的分支。我試圖避免的是必須維護這個文件,該文件應該永遠不會改變。Git:分支上分支上的文件不再需要在分支上

我認爲一開始git-reset可能會有所幫助。然後我想也許我應該「git -rm」這個文件,但是這根本不會讓我看到這個文件。我需要將它從分支中移除,以便它不再是「主」上的版本。這種情況下的最佳做法是什麼?

回答

4

我假設你只需要將該文件重置爲master上的版本,而不是擦除任何更改的歷史記錄,對不對?前者很容易,後者需要修改歷史記錄,不應輕易做到(特別是如果您將分支推到本地回購之外)。

若要將文件foo/bar/baz.txt回到它有master狀態的內容,只是檢查出你的分支和運行

git checkout master -- foo/bar/baz.txt 

這將抓住從主文件,它寫入到你的工作副本,將其列入指數。你現在只需要git commit,你的文件現在可以匹配master

+0

是的,我相信這會和我想要的效果一樣,但它不是一回事。一旦主文件發生更改(上游),我必須在我的分支上再次合併或重新綁定它。我不想這樣做,因爲我正在使用的分支是特定於項目的,只包含配置更改,而不包含代碼更改。所以我不希望這個文件甚至不再在分支上。 –

+0

@ckelly:我不認爲你知道VCS是如何工作的。如果主人更改了*任何內容,除非您合併主人的更改,否則您不會在分支上看到更改。你所要求的是完全不可能的。 –

+0

是的,凱文。我在Git很新。我正在尋找的是一個全新的功能。因此,直到「透明」分支被髮明出來之後,我才需要定期進行重組/合併。 –