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

  

 

posted @ 2024-06-24 15:08  七星飘虫  阅读(309)  评论(0)    收藏  举报