如果 PR 被拒绝,我需要做进一步的更改,应该如何处理?
留在你的功能分支上。编辑、添加、提交并再次推送到功能分支的远程跟踪分支。完毕。新的提交会自动添加到拉取请求中。
因此,例如,在myfeature 上(假设其上游已配置为origin/myfeature,并且有一个拉取请求待处理):
echo hello > test.txt
git add test.txt; git commit -mtesting
git push
如果您随后在浏览器中转到拉取请求,您会看到此提交已按良好顺序附加到拉取请求中。
其他cmets:
从 origin/main 获取所有更改并将其拉入我的本地
这可能是不必要的。您可以直接在origin/main 上获取并启动您的功能分支。但是,当您这样做时,您可能想说--no-track,以免误跟踪origin/main。例如:
git fetch
git switch --no-track -c myfeature origin/main
从更新的main 开始创建分支myfeature。
pull (w/ rebase from origin/main)
这是不必要的。同样,您可以获取然后将您的功能分支重新定位到origin/main,但是一旦您推送了这可能是一个坏主意,因为您现在将推送重写的历史;而且可能没有必要。
如果从远程更新的原因是您担心冲突,或者如果您想结合main 的最新状态来测试您的功能,最好获取然后将origin/main 合并到推送之前的功能分支。
例如,在myfeature:
git fetch
git merge origin/main
无论哪种方式,都无需离开您的功能分支,也无需说 pull 。
sourcetree 似乎让我想从 origin/branch-1(在第 5 阶段)而不是 origin/main 中提取
不,您可以从 Sourcetree 中的任何远程分支中提取。打开左侧的 Remotes 类别,按住 Control 键单击一个分支,然后选择“Pull from...”。但是,我强烈建议不要使用 pull。