upstream仓库(主仓库)与fork仓库管理

upstream仓库(主仓库)与fork仓库管理

1.添加主仓库

git remote add upstream <原始仓库URL>

添加完仓库后检查是否添加成功(成功应该有origin(fetch) origin(push) upstream(fetch) upstream(push))

其中upstream为主仓库 origin为fork仓库

git remote -v

2.拉取主仓库最新内容到本地

拉取上游仓库的master分支

git fetch upstream master

这个命令会从主仓库拉取最新的提交和分支信息,但它不会自动合并这些更改到你的本地分支。

3.将主仓库更新内容合并到本地分支

合并主仓库到本地master分支

git merge upstream/master

4.解决主仓库与本地分支冲突

在合并过程中,可能会遇到冲突。如果发生冲突,Git 会提示你哪些文件有冲突。

git add <冲突文件>

git commit

5.Git Push到分支

push到fork仓库的origin分支

git push origin origin

push到fork仓库的master分支

git push origin master

6.其他强制命令

1) fetch到本地以后没有办法解决冲突文件

强制将upstream的main分支覆盖本地main分支

git checkout main

git reset --hard upstream/main

git push origin main

2) 强制推送到fork仓库

如果你确定自己不需要保留远程仓库的更改,并希望强制将本地的内容覆盖远程仓库,可以使用 强制推送

注意: 强制推送会覆盖远程仓库的内容,丢弃远程仓库的更新。

git push origin master --force

当你通过 `fork` 从一个仓库(比如 GitHub 上的某个项目)创建了一个自己的副本后,随着时间推移,原仓库(上游仓库)可能会有新的提交和更新。为了让你 fork 出来的仓库保持仓库同步,你需要手动将仓库的更改拉取到你的本地仓库,并推送到你的 fork 仓库。 以下是详细的步骤和代码示例(以 GitGitHub 为例): --- ### ✅ 步骤一:配置上游远程仓库upstream) 首次同步前,需要为你的本地仓库添加原始仓库作为 `upstream` 远程地址。 ```bash # 查看当前远程仓库(通常只有 origin) git remote -v # 添加仓库(原作者的仓库)为 upstream git remote add upstream https://github.com/USERNAME/REPO.git ``` > 🔁 替换 `https://github.com/USERNAME/REPO.git` 为原始仓库的实际 URL。 你可以再次运行 `git remote -v` 确认是否成功添加了 `upstream`。 --- ### ✅ 步骤二:拉取仓库的最新变更 ```bash # 从 upstream 拉取所有分支和提交 git fetch upstream ``` 这会把仓库的所有更新下载到本地,但不会自动合并。 --- ### ✅ 步骤三:切换到分支并合并更新 通常分支是 `main` 或 `master`,请根据实际情况调整。 ```bash # 切换到分支 git checkout main # 将 upstream/main 的更新合并到本地 main 分支 git merge upstream/main ``` 如果没有任何冲突,合并就会成功。 --- ### ✅ 步骤四:推送到你的 fork(origin) 将你本地已更新的分支推送到你在 GitHub 上的 fork 仓库: ```bash git push origin main ``` 这样你的 forkGitHub 上也显示为“最新的”。 --- ### 🔄 后续同步建议 以后每次想同步时,只需执行以下命令: ```bash git fetch upstream git merge upstream/main git push origin main ``` 或者可以简化成一个别名(alias): ```bash git config --global alias.sync '!git fetch upstream && git merge upstream/main && git push origin main' ``` 然后使用: ```bash git sync ``` 即可一键同步(前提是已经设置好 `upstream`)。 --- ### 💡 注意事项 - 如果仓库使用的是 `master` 而不是 `main`,请替换对应分支名。 - 若出现冲突,需手动解决冲突后再提交。 - 不要直接在 fork仓库中修改核心逻辑而不通知原作者,尤其参开源项目时应遵循贡献指南(CONTRIBUTING.md)。 --- ### 示例完整流程(假设项目名为 my-project) ```bash # 第一次设置 upstream(仅一次) git remote add upstream https://github.com/original/my-project.git # 获取仓库最新信息 git fetch upstream # 更新本地 main 分支 git checkout main git merge upstream/main # 推送到你的 fork git push origin main ``` --- 上述操作完成后,你的 fork 仓库仓库保持同步了。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值