我们几天前刚刚开始使用git,我们决定我们所有的团队都会直接从当地推出分支机构。 因此,我们每个人都有责任确保我们的提交可以运行。
到目前为止,我们遇到了一个问题,即有大量的提交消息"Merge remote-tracking branch 'refs/remotes/origin/master'" in history
。当我们git fetch和git合并最新的,并将push提交到master时会发生这种情况。
对我们来说似乎不是一件好事。有没有办法克服它?
我们有研究并且认为可以通过使用rebase
来克服它(有人说如果不了解git就不应该使用)。但不确定如何完成。
希望stackoverflow中有人可以帮助我们。特别是:
1)在推送之前从服务器获取和合并最新更新时要执行的实际步骤是什么。
2)我们是否应继续使用消息"Merge remote-tracking branch 'refs/remotes/origin/master'" in history
进行后续推送,或者找到一种方法在未来推送的提交历史记录中找不到它?
答案 0 :(得分:0)
您的团队应该脱离主人,并使用--ff-only
标志将他们的分支合并到主人。他们会使用rebase来确保他们总是在最新版本的master上工作。
e.g。
git checkout master
git pull # now master is up to date
git checkout -b my-feature
# work work work
git add .
git commit -m "I did some work"
# other people were making changes at the same time,
# and some new features got added to master.
git checkout master
git pull # now master is up to date again
git checkout my-feature
git rebase master
# ^^^^^^^^^^^^^^^ this makes it seem like "I did some work"
# happened on the most recent version of master
# ready to merge my work onto master
git checkout master
git merge my-feature --ff-only # ff-only prevents the merge commit that you're trying to avoid
git push
# now everyone on the team can see my changes