問題

我最近分叉了一個專案並應用了幾個修復.然後我建立了一個拉取請求,然後被接受.

幾天後,另一個貢獻者做了另一個更改.所以我的叉子不包含這個更改.

如何在我的叉子中進行更改?當我進一步更改要貢獻時,我是否需要刪除和重新建立我的叉子?或者是否有更新按鈕?

  最佳答案

在分叉儲存庫的本地克隆中,您可以將原始的GitHub儲存庫新增為“遠端”. (“Remotes”就像儲存庫的URL的niquentals – 例如,origin是一個.)然後您可以從該上游儲存庫中獲取所有分支,並重建您的工作以繼續在上游版本上工作.根據可能看起來像的命令:

 # Add the remote, call it "upstream":

git remote add upstream https://github.com/whoever/whatever.git

# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:

git fetch upstream

# Make sure that you're on your master branch:

git checkout master

# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:

git rebase upstream/master
 

如果您不想重寫主分支的歷史(例如,因為其他人可能已經克隆了它),那麼您應該用git merge upstream/master替換最後一個命令.但是,為了進一步提出儘可能乾淨的拉取請求,重新基礎可能更好.


如果您將分支重新設定為upstream/master,您可能需要強制推送,以便將其推送到GitHub上自己的分叉儲存庫.您會這樣做:

 git push -f origin master
 

您只需要在重新基礎之後第一次使用 -f

  相同標籤的其他問題

gitgithubforkpull-request