2016-01-24 38 views
0

我的筆記本電腦和家用PC上都有一個項目,我從筆記本電腦中早些時候推送了一些東西到我的git回購,這是一個小改變。現在我已經從家用電腦上做了很多改變,我試圖將這些改動推向回購。如何將git push到已更改爲不再有文件且不想保留的文件夾

但它說我必須先拉,因爲在本地沒有本地回購的變化。

事情是這些文件沒有我的家用電腦上做的主要變化,我不想失去我的本地內容,只是因爲我從回購拉下了早期版本。

如何強制我的文件到我的回購沒有拉?

+0

你爲什麼不更頻繁地拉動變化?你知道,拉不只是刪除你的變化(你必須[合併或重定位](http://stackoverflow.com/questions/804115/when-do-you-use-git-rebase-instead-of -git合併))? – jonrsharpe

+0

我不擅長git。不,我沒有其他的合作者,只有我自己有兩個合作者。問題是我沒有拉我之前開始做改變,因爲我不曾用過git。 – Flux

+0

您不會丟失本地內容,您可以將其他人的更改與您自己的更改合併。你需要在拉動之前這樣做,或者你必須推送到不同的分支,但最終你將不得不合並這些變化。 – GolezTrol

回答

2

您可以強制推送,

git push origin master --force 

或者使用短標誌,

git push origin master -f 
+0

這將刪除已經在回購中的更改。 – adarshdec23

+0

是的。在這種情況下,用戶可以與該 – Msp

+0

我的不好,我沒有看到最後一部分。 – adarshdec23

1
git pull --rebase origin branchName 

這將首先拉動的變化到本地的回購協議(個人電腦),然後申請您的本地更改。通過這種方式,您不會丟失您在本地進行的更改。在此之後,你可以做一個

git push origin branchName 

這將然後更新您的遠程回購。

+0

謝謝你的回答,這有所幫助。 – Flux

1

當您拉動時,您不會丟失本地內容;你將其他人的變化(在這種情況下你自己從另一臺PC上)與你自己的變化合並。

您可以推送到不同的分支並刪除具有其他更改的分支。

我認爲最好的方法就是取得更改(拉動而不合並),然後自己理清差異。如果你有像SourceTree這樣的圖形化git客戶端和像KDiff3這樣的3種合併工具,那肯定會有很大的幫助。

+0

謝謝你提供這個非常豐富的答案。 – Flux

相關問題