我的筆記本電腦和家用PC上都有一個項目,我從筆記本電腦中早些時候推送了一些東西到我的git回購,這是一個小改變。現在我已經從家用電腦上做了很多改變,我試圖將這些改動推向回購。如何將git push到已更改爲不再有文件且不想保留的文件夾
但它說我必須先拉,因爲在本地沒有本地回購的變化。
事情是這些文件沒有我的家用電腦上做的主要變化,我不想失去我的本地內容,只是因爲我從回購拉下了早期版本。
如何強制我的文件到我的回購沒有拉?
我的筆記本電腦和家用PC上都有一個項目,我從筆記本電腦中早些時候推送了一些東西到我的git回購,這是一個小改變。現在我已經從家用電腦上做了很多改變,我試圖將這些改動推向回購。如何將git push到已更改爲不再有文件且不想保留的文件夾
但它說我必須先拉,因爲在本地沒有本地回購的變化。
事情是這些文件沒有我的家用電腦上做的主要變化,我不想失去我的本地內容,只是因爲我從回購拉下了早期版本。
如何強制我的文件到我的回購沒有拉?
您可以強制推送,
git push origin master --force
或者使用短標誌,
git push origin master -f
git pull --rebase origin branchName
這將首先拉動的變化到本地的回購協議(個人電腦),然後申請您的本地更改。通過這種方式,您不會丟失您在本地進行的更改。在此之後,你可以做一個
git push origin branchName
這將然後更新您的遠程回購。
謝謝你的回答,這有所幫助。 – Flux
當您拉動時,您不會丟失本地內容;你將其他人的變化(在這種情況下你自己從另一臺PC上)與你自己的變化合並。
您可以推送到不同的分支並刪除具有其他更改的分支。
我認爲最好的方法就是取得更改(拉動而不合並),然後自己理清差異。如果你有像SourceTree這樣的圖形化git客戶端和像KDiff3這樣的3種合併工具,那肯定會有很大的幫助。
謝謝你提供這個非常豐富的答案。 – Flux
你爲什麼不更頻繁地拉動變化?你知道,拉不只是刪除你的變化(你必須[合併或重定位](http://stackoverflow.com/questions/804115/when-do-you-use-git-rebase-instead-of -git合併))? – jonrsharpe
我不擅長git。不,我沒有其他的合作者,只有我自己有兩個合作者。問題是我沒有拉我之前開始做改變,因爲我不曾用過git。 – Flux
您不會丟失本地內容,您可以將其他人的更改與您自己的更改合併。你需要在拉動之前這樣做,或者你必須推送到不同的分支,但最終你將不得不合並這些變化。 – GolezTrol