当我们在GitHub上fork一个仓库时,相当于我们复制了一个仓库的副本到我们的GitHub账号下,我们可以在该副本中进行修改,但是原作者不会收到我们的修改。
如果我们想要将我们在fork的副本上的修改同步到原作者的仓库中,我们需要进行git fork同步。
- 添加上游仓库
我们可以在本地使用git命令添加上游仓库。
首先需要在本地克隆我们fork的仓库:
git clone https://github.com/yourusername/repo.git
然后进入克隆下来的目录:
cd repo
然后使用git remote add命令将原作者的仓库添加为上游仓库:
git remote add upstream https://github.com/originalusername/repo.git
- 拉取上游仓库代码
添加上游仓库之后,我们需要使用git fetch命令从上游仓库拉取最新的代码。
git fetch upstream
- 合并代码
拉取最新代码之后,我们可以使用git merge命令将上游仓库的代码合并到我们的本地分支中。
git merge upstream/master
这里的upstream/master代表原作者的主分支。
示例1:
假设我们fork了一个名为repo的仓库,原作者为originalusername,我们想要将我们在fork的副本上的修改同步到原作者的仓库中。
- 添加上游仓库
git clone https://github.com/yourusername/repo.git
cd repo
git remote add upstream https://github.com/originalusername/repo.git
- 拉取上游仓库代码
git fetch upstream
- 合并代码
git merge upstream/master
示例2:
假设我们fork了一个名为repo的仓库,原作者为originalusername,我们想要在本地创建一个新分支进行修改,并将这些修改同步到原作者的仓库中。
- 添加上游仓库
git clone https://github.com/yourusername/repo.git
cd repo
git remote add upstream https://github.com/originalusername/repo.git
- 创建新分支并提交修改
git checkout -b new-feature
# 在本地进行修改
git add .
git commit -m "add new feature"
git push origin new-feature
- 合并代码
git checkout master
git fetch upstream
git merge upstream/master
git push origin master
这里的master代表我们的本地主分支,也是我们fork的副本上的主分支。
这样,我们在new-feature分支上的修改就会同步到原作者的仓库中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:git fork同步是什么意思? - Python技术站