2016-10-02 443 views
3

這是如此有問題,我只是混帳拉東西,然後說,有地方變化....我什麼也沒有改變......我嘗試重置,但它沒有用......任何人都可以幫助嗎?爲什麼git reset不起作用?

MacBook-Pro$ git reset --hard 
HEAD is now at b89fcff the latest code in AWS to identify all difference and keep track 
MacBook-Pro$ git checkout dev1.1 
error: Your local changes to the following files would be overwritten by checkout: 
    OUTPUT_RESULTS_DIR/equity.csv 
Please commit your changes or stash them before you switch branches. 
Aborting 
+0

嘗試'git reset --hard .' where。指出你的當前目錄。我懷疑生活在子文件夾中的equity.csv沒有被清除。 – AADProgramming

+0

*「我只是拉東西,然後它說有局部變化」* - 這種行爲的一個常見原因是在同一個文件中出現混合換行符('LF'和'CR LF')。閱讀更多:https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#Formatting-and-Whitespace關於如何解決它。 – axiac

+0

這個文件可能被標記爲skip-worktree,請參閱http://stackoverflow.com/a/11131211/3906760 – MrTux

回答

0

試着隱藏它也許會工作。 :

git stash save 
+1

如果'git reset --hard'沒有清除它,它也不會被包含在存儲器中。 – poke

+0

謝謝指出。我看到我的錯誤:) –

1

如果你一定沒有你關心的變化,那就沒有理由去嘗試提交或積攢你應該能夠迫使結帳如下(甚至重置):

git checkout --force dev1.1 

--force選項會導致Git放棄任何本地更改而不是失敗。只要確定這真的是你想要做的。

4

執行git reset --hard只會影響那些文件,Git知道;那些目前由Git跟蹤的。

git status的輸出作爲參考時,影響的只是那些Git檢測到已分階段或未分階段的修改的文件。在未被跟蹤的部分中列出的文件,因此不被「Git知曉」,不受影響。

所以在你的情況下,你有一個未跟蹤的文件OUTPUT_RESULTS_DIR/equity.csv。做git reset --hard不會影響它,所以它保持它的位置。但是,您嘗試檢出的分支dev1.1顯然包含該文件。因此,在這裏,Git將通過阻止您退出,從而防止您意外丟失本地文件的內容。

此時,您可以重新命名該文件,以便您仍然擁有它,但在檢出其他分支時不會導致衝突。您也可以使用git checkout dev1.1 --force強制Git檢出分支,忽略任何衝突。但請注意,此操作無法撤消,因此請小心。