我認爲使用git(用於web開發)並在lynda.com上觀看了很多課程並閱讀了一些博客文章。但有一個問題我找不到答案,或者不明白它是如何工作的。Git:如果我在推送前忘記更新會怎麼樣
我有一個Web服務器,本地服務器上的回購和本地機器上的回購。
如果我在更改本地服務器/ Web服務器(由其他團隊成員更新)的同時處理該文件,該怎麼辦?會有警告嗎?它會自動合併?它會覆蓋文件嗎?
例如:我編輯一些CSS和PHP文件,忘記更新我的本地文件。當我將這些文件提交到文件較新的本地服務器時會發生什麼?
我認爲使用git(用於web開發)並在lynda.com上觀看了很多課程並閱讀了一些博客文章。但有一個問題我找不到答案,或者不明白它是如何工作的。Git:如果我在推送前忘記更新會怎麼樣
我有一個Web服務器,本地服務器上的回購和本地機器上的回購。
如果我在更改本地服務器/ Web服務器(由其他團隊成員更新)的同時處理該文件,該怎麼辦?會有警告嗎?它會自動合併?它會覆蓋文件嗎?
例如:我編輯一些CSS和PHP文件,忘記更新我的本地文件。當我將這些文件提交到文件較新的本地服務器時會發生什麼?
當你在git(又名你的服務器)中推送到遠程時,如果你的本地版本的分支和遠程版本之間的提交順序不是線性的,那麼推送將被拒絕(永遠不會-annoying「非快進」問題)。如果你想避免這樣的問題,最好的辦法是在推送之前確保你的服務器上有最新版本的代碼。我會做的是以下幾點:
在推送到遠程之前: - git remote update
提取所有的遙控器。 - 如果您的工作目錄中有更改,git stash
將暫時保存並清理您的工作目錄。 - git rebase origin/master
將適用master
和master
最近的共同祖先與origin/master
之間的提交到origin/master
和移動master
分支到這個新的位置
很明顯,你可以選擇你的遠程和分支取代origin
和master
。現在,當您推動時,您不必擔心非快速轉發問題,並且您可以確保在推送之前處理最新版本的代碼。
或者,您可以對其進行設置,以便只有一名開發人員可以推送到您服務器上的分支,因此您不必擔心多人推送到服務器:相反,一名開發人員管理所有更改服務器。
謝謝,邁爾斯。直到現在我還沒有讀過很多命令。將檢查他們,看看是否適合我。 – quinny
你的意思是「拉前推」?提交僅在Git中是本地的,不會修改遠程存儲庫中的任何內容。 – nif
是的,我認爲「推」不是「承諾」。對不起,這對我來說都是新的:-) – quinny