2013-04-11 55 views
1

我在Github上託管我的博客,並一直將我的新內容推送到源回購站。然而,事情已經在這裏和那裏發生了變化,我已經刪除/交換了我的博客的一些元素。 現在,我才意識到我的所有舊東西都是在Github上。這就像我曾經向Github推送過的所有東西。如何從Github中刪除內容並使我的回購與我的本地代碼同步?

我的問題:我可以使用什麼命令讓我的本地代碼與我的Github再次同步?

回答

2

既然你通常推,我猜測,在這種情況下,有改變內容的服務器上,所以在這種情況下,你可以:

git pull # get the stuff from the server and merge it into your repo. 

git push # push the combined stuff back out. 

但是......這仍然使用看不見的魔法。我實際上做這些天是這樣的:

git fetch # First fetch the server changes into your tracking branch 
git merge # Merge those changes into yours 
git push # Push those changes out. 

那麼,在未來,如果有在服務器上的變化,使得本地更改之前,你可以這樣做:

git pull 

雖然這裏也是,我喜歡:

git fetch   # Get the latest 
git reset --hard origin/master # set your local to be the same as the tracking branch. 
# Make changes locally 
# git add .   # Add the changes to git 
# git commit -m"msg" # Commit the changes 

,因爲它可以避免不小心做一個意外合併到了錯誤的分支或忘記了局部變化。

以上全部假設您只是與主人合作。現在,我的大部分工作都是在分支中完成的(順便說一下,它與CVS等舊版本控制系統中的分支不一樣)。

0

如果我正確理解你的問題,你想擺脫Github倉庫中的所有提交,並用你在本地提交的提交替換它們。 如果是這種情況,請嘗試以下命令:

git push -f 

這將推動你提交到服務器忽略了已經在那裏的歷史。

請注意:您將失去Github回購協議中的所有歷史記錄,這些歷史記錄不會與您當地的回購協議共享,因此請確保這是您想要的!

+0

此命令附帶*****警告*****。我曾經這樣做過,並摧毀了開發人員的變化。這從來沒有必要,我從來沒有用過它。 – 2013-04-11 22:32:43

+0

是的,你是對的,這就是爲什麼我添加了「注意」的說明,儘管它可能措辭不佳。 但是,如果您的本地存儲庫與遠程存儲庫不同,並且您確定要丟棄遠程歷史記錄,那麼這是要使用的命令。 – fvieira 2013-04-11 22:37:45

+0

當然,好東西。我只是想強調,這不一定只是關於你自己的歷史,它實際上可能意味着消除了其他開發人員當前的變化,如果他們與你分開推出,那麼不僅僅是你自己的歷史。 – 2013-04-11 22:57:37

0

使用下面的命令從遠程

混帳拉數據拉

如果您本地製造中不存在的遠程提交,然後使用

混帳拉--rebase

相關問題