Merge/rebase 远程跟踪分支

Merge/rebase remote tracking branch

是否可以在 git(本地)中 merge/rebase 远程跟踪分支?

我知道可以通过gitpull修改。 但是我们可以通过任何其他 git 命令(本地)修改远程跟踪分支吗?

can we modify the remote tracking branch by any other git commands (locally)?

pushfetchpull 是什么)都修改了远程跟踪分支。你不能以任何其他方式做到这一点,因为远程跟踪分支的全部目的是(等待它)跟踪远程,即完美匹配它。如果您可以通过直接编辑远程跟踪分支而不与远程通信来破坏匹配,那么您的存储库将会中断。

. just wondering how push will modify remote tracking branch ? (when we push our local branch to hosting site, automatically in the background, git merge runs?

远程端没有发生合并:

  • 推送在远程跟踪分支之上添加新提交,并且所述远程分支只是移动其 HEAD 以反映该(推送的)分支中新的最新提交
  • 或者推送添加了不同的历史记录,并被取消(除非你这样做push --force

通常使用远程跟踪分支在以下基础上重新设置本地分支:

git switch my-feature-branch
git fetch
git rebase origin/main
git push --force

这样,当您执行 PR(拉取请求)时,请求将您的远程功能分支合并到远程主分支,该请求将很容易解决(因为您的功能分支只会在遥控器顶部 main).

远程跟踪分支 origin/main 已被 git fetch 修改(使用默认值 refspec +refs/heads/*:refs/remotes/origin/*