git中fork使用
1.先将项目fork到私有服务器仓库
2.克隆 Forked 仓库到本地
# 使用你的仓库 URL 克隆 git clone https://github.com/your-username/your-forked-repo.git cd your-forked-repo
3.添加上游(原始)仓库
# 添加上游仓库 git remote add upstream https://github.com/original-username/original-repo.git # 验证远程仓库 git remote -v
你应该看到类似以下的输出
origin https://github.com/your-username/your-forked-repo.git (fetch) origin https://github.com/your-username/your-forked-repo.git (push) upstream https://github.com/original-username/original-repo.git (fetch) upstream https://github.com/original-username/original-repo.git (push)
4.同步 Forked 仓库与上游仓库
为了保持你的 Forked 仓库与上游仓库的最新状态,你需要定期同步。
4.1.获取上游仓库的更新
git fetch upstream
4.2.合并上游更新到你的分支
假设你在 main
分支上进行开发
git checkout main
git merge upstream/main
解决冲突(如果有)
如果合并过程中出现冲突,按照 Git 提示解决冲突并提交.
5.开发和提交更改
在本地进行开发,创建新分支,进行修改并提交。
# 创建并切换到新分支 git checkout -b new-feature-branch # 进行修改并提交 git add . git commit -m "Add new feature"
6.推送更改到 Forked 仓库
将你的修改推送到 Forked 仓库的对应分支。
git push origin new-feature-branch
7.创建合并请求(Pull Request 或 Merge Request)
在 GitHub 或 GitLab 上,导航到你的 Forked 仓库,找到刚才推送的分支,创建一个合并请求,提交到上游仓库。
7.1.点击“New Pull Request”或“New Merge Request”: 通常在你的 Forked 仓库页面中有这个选项。
7.2.选择分支: 选择你的分支和目标上游分支。
7.3.填写请求信息并提交: 添加标题和描述,提交合并请求。
8.可能遇到的问题:
8.1.fatal: refusing to merge unrelated histories
git merge upstream/main --allow-unrelated-histories
8.2.可能用到的操作,文件冲突
8.2.1.使用当前分支的版本覆盖冲突文件
# 保留当前分支的所有冲突文件 git checkout --ours . # 保留当前分支的指定文件的冲突 git checkout --ours file1.txt
8.2.2.使用合并分支的版本覆盖冲突文件
# 保留合并分支的所有冲突文件 git checkout --theirs . # 保留合并分支指定文件冲突 git checkout --theirs file2.txt git add . git commit -m "说明"
8.2.3.或者手动解决冲突然后git add .
9.你可以使用 git branch -r
查看所有的远程分支,包括 upstream
的分支
git branch -r
你应该会看到类似以下的输出:
origin/main upstream/main