@@ -755,6 +755,10 @@ GitHub 在 [这里](https://docs.github.com/en/pull-requests/collaborating-with-
755755 - 使用 `git fetch origin pull/1234/head:pr-1234` 的形式将编号为 1234 的 PR 对应的 HEAD 同步到本地的 `pr-1234` 分支
756756 - 之后 `git checkout pr-1234` 即可
757757
758+ !!! warning "只读分支"
759+
760+ 需要注意的是,远程的 `pull/<id>/head` 是只读的分支,如果需要写入其他人的 PR 分支,需要自行 `git remote add` 添加对方的仓库,并将其 PR 对应的分支添加到本地。
761+
758762维护者可以在这个新分支中同步贡献者的新修改,如果 PR 设置为 "Allow edits from maintainers",那么维护者也可以直接写入贡献者的 PR。
759763
760764!!! note "GitLab"
@@ -767,14 +771,30 @@ GitHub 在 [这里](https://docs.github.com/en/pull-requests/collaborating-with-
767771
768772 ```ini title="~/.gitconfig"
769773 [alias]
770- pr = !sh -c ' git fetch $1 pull/$2 /head:pr-$1 -$2 && git checkout pr-$1 -$2 ' -
771- mr = !sh -c ' git fetch $1 merge-requests/$2 /head:mr-$1 -$2 && git checkout mr-$1 -$2 ' -
774+ pr = !sh -c ' git fetch -u $1 + pull/$2 /head:pr-$1 -$2 && git checkout pr-$1 -$2 && git reset --hard HEAD ' -
775+ mr = !sh -c ' git fetch -u $1 + merge-requests/$2 /head:mr-$1 -$2 && git checkout mr-$1 -$2 && git reset --hard HEAD ' -
772776 ```
773777
774- 使用例子:`git pr origin 1234`(GitHub)、`git mr origin 1234`(GitLab)。
778+ 使用例子:`git pr origin 1234`(GitHub)、`git mr origin 1234`(GitLab)。重复执行可从 PR/MR 中获取最新的修改。
779+
780+ !!! question "`git pull`?"
781+
782+ 为什么这样得到的分支无法执行 `git pull`?如何修复这个问题?
775783
776784 以上修改自 [Check out locally by adding a Git alias](https://docs.gitlab.com/user/project/merge_requests/merge_request_troubleshooting/#check-out-locally-by-adding-a-git-alias)。
777785
786+ !!! question "参数说明"
787+
788+ 原始的 alias 如下:
789+
790+ ```ini title="~/.gitconfig"
791+ [alias]
792+ pr = !sh -c ' git fetch $1 pull/$2 /head:pr-$1 -$2 && git checkout pr-$1 -$2 ' -
793+ mr = !sh -c ' git fetch $1 merge-requests/$2 /head:mr-$1 -$2 && git checkout mr-$1 -$2 ' -
794+ ```
795+
796+ 相比原始的 alias,这里的有什么变化?添加这些变化的目的是什么?是否有更好的解决方案?
797+
778798### GitHub Actions {#github-actions}
779799
780800GitHub Actions 是 GitHub 提供的 CI/CD 服务,可以用于自动化构建、测试、部署等。
0 commit comments