要保留自己的更改并与上游仓库同步,你可以按照以下步骤进行操作:

  1. 克隆你的 Fork 仓库到本地: 使用以下命令将你的 Fork 仓库克隆到本地(将 <your_username> 替换为你的 GitHub 用户名, <repo_name> 替换为仓库名称):

    git clone https://github.com/<your_username>/<repo_name>.git
  2. 添加上游仓库为远程: 进入你克隆的仓库目录,然后添加上游仓库作为一个远程仓库:

    cd <repo_name>
    git remote add upstream https://github.com/<upstream_username>/<repo_name>.git

    这将使你能够从上游仓库获取更新。

  3. 拉取上游仓库的更改: 使用以下命令从上游仓库拉取更新:

    git fetch upstream
  4. 切换到你想要合并的分支: 如果你的更改在特定分支上,切换到那个分支:

    git checkout <your_branch>
  5. 合并上游更改: 将上游仓库的更改合并到你的分支上:

    git merge upstream/main

    如果遇到冲突,需要解决冲突后继续合并。

  6. 解决冲突(如果有): 如果合并时出现冲突,手动解决冲突,然后进行提交。

解决冲突后,你需要手动删除冲突标记以保持代码的整洁。冲突标记通常以类似 <<<<<<<=======>>>>>>> 的形式出现,分别表示不同版本的代码段。你需要选择保留你的更改,然后删除这些标记。以下是具体的步骤:

  1. 打开冲突文件,找到包含冲突标记的部分。例如:

    <<<<<<< HEAD
    // Your changes here
    =======
    // Upstream changes here
    >>>>>>> upstream/main

    上面的例子中, <<<<<<< HEAD======= 之间是你的更改, =======>>>>>>> upstream/main 之间是上游的更改。

  2. 根据你的选择,保留你的更改并删除上游的更改。删除冲突标记和不需要的部分,以便代码看起来干净整洁。

  3. 一旦你已经删除了冲突标记并根据需要进行编辑,保存文件。

  4. 使用以下命令将解决后的文件添加到暂存区:

    git add src-tauri/tauri.conf.json

    请将 <conflict_file> 替换为包含冲突的文件名。

  5. 提交解决后的冲突:提交文件,附上一条解释说明你是如何解决冲突的:

    git commit -m "Resolved merge conflict in tauri.conf.json"

    同样,请将 <conflict_file> 替换为实际文件名。

  6. 继续进行合并:一旦你解决了一个冲突并提交了更改,继续进行之前的合并步骤:

    git merge upstream/main
  7. 最后,将解决后的更改推送到你的 Fork 仓库:

    git push origin main

重复这个过程,直到所有冲突都被解决,并且你的分支包含了你自己的更改以及已解决的冲突。然后你可以继续向上游仓库提交拉取请求。
现在,你的 Fork 仓库中的分支既包含了你自己的更改,又同步了上游仓库的更新。你可以打开一个拉取请求,将这些更改提交到上游仓库的相应分支中。这样,维护者就可以审核并合并你的更改,使它们成为上游仓库的一部分。