Skip to content

Commit ece231c

Browse files
committed
dev/git: Update pr/mr alias
1 parent 248f318 commit ece231c

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

docs/dev/git.md

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
780800
GitHub Actions 是 GitHub 提供的 CI/CD 服务,可以用于自动化构建、测试、部署等。

0 commit comments

Comments
 (0)