我写了一个bash脚本来通过以下方式即时检查PR:
co URL
co() {
set $1
git fetch upstream
git checkout pr/${1##*/}
}
一旦我在分支上签出,我想知道最好的方法是轻松地从创建者源分支中获取更新。
例如:
UserA将PR打开到上游主服务器。我使用此脚本签出提取请求,但UserA推送了更新。我该如何取消将来的更新?
答案 0 :(得分:1)
一个简单的修改,假设您的PR均预期在upstream
上(如现有代码所假定的那样),可能是:
co() {
git fetch upstream || return
git checkout --track "pr/${1##*/}" || return
git merge "upstream/pr/${1##*/}"
}
这就是如果您想保留您可能已进行的任何本地更改,尽管其他人对PR分支的强行推动可能会使事情有些混乱。如果您只想将分支重置为远程分支,则放弃所有本地更改:
co() {
git fetch upstream || return
git checkout --track "pr/${1##*/}" || return
git reset --hard "upstream/pr/${1##*/}"
}
...或者,将本地更改放在远程更改的顶部,而不是直接将其丢弃:
co() {
git fetch upstream || return
git checkout --track "pr/${1##*/}" || return
git rebase "upstream/pr/${1##*/}"
}
没有一种正确的方法可以执行此操作,这可能是一个很好的暗示,表明git上游通过 not 将所有内置命令都做了正确的事情:人的判断适合根据眼前的场景来决定正确的行动。