我有一个存储库和一些本地更改要提交。 在提交之前,我使用Eclipse中的Egit将更改提取到我的本地。
它创建了一个合并提交,我提交了它的提交。
现在,当我尝试推送到原点时,它表明它将推送我的提交以及合并提交。 但理想情况下,合并提交不应该是远程存储库的一部分。
如何避免这种情况?
答案 0 :(得分:33)
每当从远程存储库中提取时都使用rebase选项。请按照以下步骤进行操作
git pull --rebase <remote-name> <branch-name>
。答案 1 :(得分:6)
如果您有未提交的更改,则可以执行
def custom_loss(y1_true, y1_pred,y2_true, y2_pred):
答案 2 :(得分:3)
通常的策略是在分支机构工作。当远程主服务器更改时,将更改拉到主服务器而不是合并, rebase 分支。
请参阅Atlassian的Git Rebase。
答案 3 :(得分:3)
你可以运行
git config --global branch.autosetuprebase always
使git pull --rebase
成为git pull的默认行为。
答案 4 :(得分:2)
如果您不想要合并提交,那么将本地分支同步到远程分支的最佳方法是进行 rebase。建议您先执行 git fetch
,然后执行 git rebase
,但是,正如其他人提到的,您可以同时执行这两个操作:
git pull --rebase --autostash
如果您总是这样做,您可以将 git pull
配置为自动执行此操作:
git config --global pull.rebase true
git config --global rebase.autostash true
答案 5 :(得分:0)
场景:
假设在 GIT 存储库中提出了一个 PR:从 feature/my_bug_fix
到 release/project-007
。
但是由于上述分支之间的冲突,GIT 不允许合并。
然后就这样做,
$ git checkout feature/my_bug_fix
$ git pull --rebase origin release/project-007
$ # resolve any conflicts encounter during the process
$ git rebase --continue
$ git push origin feature/my_bug_fix --force
这是解决冲突分支的有效且干净的方法,通过这个,您将不会获得那些合并提交,否则如果您使用 git merge 就会出现这些提交。 >
此外:
pull = fetch + merge
pull --rebase = fetch + rebase
因此,选择处理分支的方式。
您应该更好地了解合并和变基之间的区别:)