2017-03-07 49 views
0

我只想知道提交到Git存儲庫的正確方式。假設我在本地修改了某些服務器版本也有變化的文件(有明顯的衝突)。我希望我必須先修改服務器更改。而當一些衝突顯示我必須手動解決衝突,然後我將不得不再次提交併推送更改。請指教。我對於保存流行音樂的必要性感到困惑。在這種情況下,我需要彈出保存嗎?Git在服務器發生變化時提交更改的正確方式

+0

嗯,是不是'git pull'正在做你在問什麼?或者,如果您的**「提交併再次推送更改」**意味着「提交每個包含遠程端更改的更改」,那麼git fetch + rebase就是您需要做的事情,我相信。 –

回答

1

有幾件事。

在做git push之前,你總是需要做一個git pull。 Git不會讓你推動你的改變,除非你的回購有所有新的工作。

如果存在任何合併衝突,您可以簡單地解決它們,然後在新提交中提交合並衝突。

在這一點上,你只是做一個git推。

如果你一直在做的工作,有一個最終的後尚未提交這是哪裏的意見和問題進來,很多人會處理合並衝突之前做一個git藏匿,然後一個git彈出代碼更改git推。如果您不小心,最終可能會提交您不想要的新代碼更改。但是,通過適當的測試,發佈分支和開發實踐,這不應該發生。

你的命令應該看起來像這樣。

git pull 
# Manually resolve any conflicts, hopefully there are few 
git add conflict_file 
git commit -m "Fixed merge conflicts with my new devwork" 
git push 
4

這些是你的選擇。首先提交您的更改。如果您不提交更改,Git不會讓您合併上游的更改(您將無法從服務器中看到新版本)。

  1. 獲取,合併,然後(最終)推送。取數和合並與git pull是一樣的。

  2. 取,rebase,然後(最終)推。讀取和重定位與git pull --rebase是一樣的。

請記住,任何你還沒有推,你可以在不影響局部改變。

請注意,如果您尚未將服務器的最新更改合併到本地存儲庫,push將會失敗。這聽起來像這正是你所希望的。也就是說,只要你避免使用push --force

相關問題