2013-07-01 86 views
118

在我的分支我有一些文件中的.gitignore以下未跟蹤工作樹中的文件將被合併被覆蓋,但我不在乎

在不同的分支這些文件都沒有。

我想合併到我的不同分支,我不在乎如果這些文件不再被忽略或不。

不幸的是我得到這樣的:

The following untracked working tree files would be overwritten by merge

我將如何修改我拉命令覆蓋這些文件,沒有我發現,移動或刪除這些文件我自己?

+1

可能重複的[強制git覆蓋拉本地文件](http://stackoverflow.com/questions/1125968/force-git-to-overwrite-local-files-on-pull) –

+0

可能重複的[錯誤:以下未跟蹤的工作樹文件將被checkout覆蓋 - git](http://stackoverflow.com/questions/4858047/error-the-following-untracked-working-tree-files-would-be-overwritten-by -checko) –

+0

[以下未跟蹤的工作樹文件將被checkout覆蓋](https://stackoverflow.com/questions/4858047/the-following-untracked-working-tree-files-would-be-overwrite退出) – nelaaro

回答

228

的問題是,你是不是在本地跟蹤文件,但相同的文件進行遠程跟蹤,以便以「拉」你的系統將是被迫覆蓋不受版本控制的本地文件。

嘗試運行

git add * 
git stash 
git pull 

這將跟蹤所有文件,刪除所有的本地更改這些文件,然後再從服務器獲取的文件。

+28

'git add -A。; git stash'爲我工作。 git add *'變種抱怨被忽略的路徑。 – imsky

+5

我試過git add。,git stash,git pull。它的工作,但我仍然不明白爲什麼? –

+1

對我來說,我有一個遠程文件被跟蹤,並且我的本地倉庫中有一個同名的文件,這個文件未被跟蹤。所以,如果您添加本地文件存儲更改,然後拉,遠程文件應覆蓋本地文件。 – userFog

29

您可以嘗試命令從本地

git clean -d -f "" 

清理未跟蹤文件,其中-d可以與下面的代碼替換:

  • -x意味着忽略的文件也將被刪除,以及git未知的文件。

  • -d表示除未追蹤的文件外,還刪除未追蹤的目錄。

  • -f需要強制它運行。

這裏是link,也可以有所幫助。

+9

我會爲交互模式添加'-i'。除了刪除不需要的目錄,我也剛剛刪除了我的項目用戶設置:-( – dumbledad

+5

這是值得通過評論掃描[類似的答案](http://stackoverflow.com/a/8362346/575530)作爲'-x'可能會受到傷害 – dumbledad

+3

但是這是非常危險的,而且是不可撤銷的任務!!你可能會失去很多文件!小心!! –

11

你可以試試這個命令

git clean -df 
+4

刪除未跟蹤目錄有什麼用處?他們可能是有價值的,你知道。 – zhekaus

23

爲我工作的唯一的命令是:

git fetch --all 
git reset --hard origin/{{your branch name}} 
+1

需要注意的是,如果您已刪除子模塊並將它們作爲原始庫中的庫進行了讀取,則需要此答案。我需要一個答案,這就是所有的工作。 – Routhinator

5

如果你考慮使用-f標誌,你可能會首先運行它作爲幹運行。只是,你知道前期,你會到底是什麼樣的有趣局面旁邊;-P

-n 
--dry-run 
    Don’t actually remove anything, just show what would be done. 
7

刪除所有未跟蹤文件:

git clean -d -fx "" 
+0

爲什麼負面downvote,請解釋... –

3

除了公認的答案,你當然可以刪除的該文件,如果他們不再需要通過指定文件:

git clean -f '/path/to/file/' 

記住-n標誌第一次運行它,如果你想看看git clean會刪除哪些文件。請注意,這些文件將被刪除。就我而言,我無論如何都不在乎,所以這對我來說是一個更好的解決方案。

相關問題