2017-03-07 61 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

相关问题