我正在学习git,我有一个场景:
至于我的理解,此时我可以:
我想知道是否有更好的方法可以做到这一点。
答案 0 :(得分:8)
如果远程和本地分支都有不同的更改,而不是仅仅按git pull
拉取主控,我宁愿这样做:
git pull --rebase
这可以避免合并提交,并将更改保留在主分支之上。
然而,当不同的人在同一个分支上工作时,你仍然必须解决任何发生的合并冲突,这是一种不好的做法,特别是因为它会导致冲突。
如果进行微小更改,您的应用程序只会应用于顶部。您正在更改历史记录,但只更改本地,而不是遥控器。
你不需要git push --force
。您只需git push
就可以了。
通常,您应该处理功能分支并将它们合并回主分支。
在主分支上工作时,还可以通过以下方式使功能分支靠近主分支:
git checkout feature-branch
git rebase origin/master
然而,这里需要git push --force
功能分支,因此如果不止一个人在同一个功能分支上工作,应该注意不要使用此策略。
如果想要使用rebase并推送强制,请考虑使用git push --force-with-lease
而不是git push --force
,因为它可以防止意外删除遥控器上的其他提交。
答案 1 :(得分:4)
一种(简单*)方式来处理这种情况而不进行分支或存储:
答案 2 :(得分:2)
根据我的经验,最好的方法是:
这就是如何在需要部署时开发许多新功能并仅合并工作的功能。祝你好运并检查一下 - > https://www.codeschool.com/courses/try-git
答案 3 :(得分:1)
如果您同时处理同一个文件,那么您将不可避免地遇到冲突。您只需要学习如何解决冲突。
如果你想避免解决冲突,那么也许你们应该将任务委托给另一个涉及处理不同文件的任务。
答案 4 :(得分:0)
我相信git sync会很好。 Git sync提交您的更改,提取master中存在的所有更改,然后将所有更改推送到master。