2014-06-15 54 views
0

好的,所以我對git很陌生,害怕做任何會永久搞砸的事情。我昨天做了一個提交,然後從遠程回購中拉出來,並在一些文件上搞砸了。現在我想回到我承諾完成之後和之前所做的一切,但我想確保我不會在遠程分支上搞亂任何東西,也不想失去我承諾的任何東西。我該怎麼辦?我知道有很多這樣的問題,但我想專門問我想做什麼。另外,一旦我回到最後一次提交,我是否可以再次從遠程分支中取出?本地刪除所有內容以提交最後一次提交?

+0

刪除所有內容並再次克隆 – Sleepyhead

+0

嘗試'git ref-log'。你應該能夠看到你的提交。重置您的存儲庫到該提交。 –

+0

@sleepyhead:如果user3507586刪除所有內容,它們的提交將會丟失。 –

回答

0

如果你真的不想在本地搞亂任何東西,只需在新文件夾中複製(複製)整個回購,然後在新文件夾中試用。


我不想失去任何東西,我犯

首先,你在哪一個分支(將引用您的最後commmits)

git branch tmp 

從「HEAD and ORIG_HEAD in Git 「:

pull」或「merge」始終將當前分支的原始頂端留在ORIG_HEAD中。

git reset --hard ORIG_HEAD 

如果沒有後拉更多的合併,然後ORIG_HEAD不會有正確的信息了,你就一定得在git reflog拉之前提交。

我想確保我不要弄亂的遠程分支什麼,

git reset是應用到你的本地克隆本地命令:遠程回購不知道的。

一旦你重置,你可以git cherry-pick你看到的最後幾個提交git log tmp

+0

請問HEAD和ORIG_HEAD有什麼不同? – user3507586

+0

@ user3507586:http://stackoverflow.com/a/967611/6309「ORIG_HEAD'是'HEAD'的前一狀態,由具有可能危險行爲的命令設置,以便於恢復它們。 – VonC

+0

好吧,我做的是'git reset --hard 8b22b3b',它重置爲我認爲的那個提交?但是當我運行'git status'時,我看到一堆未跟蹤的文件,我不確定它們來自哪裏。這是正常的嗎? – user3507586

相關問題