Git 上游仓库更新后保持自己的更改为最新

Git 上游仓库更新后保持自己的更改为最新

Powered By ChatGPT

如果你已经 fork 了一个仓库,并且上游仓库(即你 fork 的原始仓库)有了更新,你想让你的仓库与上游保持同步,同时保持你自己的更改仅为最新的一个 commit ahead,你可以通过以下步骤来操作:

  1. 添加上游仓库为远程仓库: 首先,你需要确保你的本地仓库有上游仓库的远程地址。这允许你从上游仓库拉取最新的更新。可以使用如下命令来添加远程仓库(如果尚未添加):
    bash
    git remote add upstream <上游仓库的URL>
    

    确认远程仓库已经添加:
    bash
    git remote -v
    
  2. 拉取上游仓库的更新: 使用以下命令从上游仓库拉取最新的更改:
    bash
    git fetch upstream
    
  3. 切换到你的主分支(例如,如果你的主分支是 master):
    bash
    git checkout master
    
  4. 合并上游的更改到你的主分支: 现在你可以将上游的更新合并到你的分支上。如果你想保持历史简洁,可以使用 rebase 而不是 merge:
    bash
    git rebase upstream/master
    

    这样会使你本地的更改在上游的更改之上重新应用。
  5. 处理可能出现的冲突: 如果在 rebase 过程中出现冲突,git 会停止并让你去解决冲突。解决冲突后,你可以用 git add <文件名> 来标记冲突已解决,然后使用 git rebase --continue 继续 rebase 过程。
  6. 将你的更改整合为一个新的 commit: 如果你的改动分散在多个 commits 中,你可以使用 git rebase -i 来整合这些更改为一个单一的 commit。例如,要整合最近四个 commits,你可以做:
    bash
    git rebase -i HEAD~1
    

    在弹出的编辑器中,除了你想保留为一个 commit 的那行外,将其余的 pick 改为 squashfixupsquash 会合并 commit 但要求你合并提交信息,fixup 会直接合并 commit 且忽略它们的提交信息)。
  7. 推送更改到你的 fork: 使用下面的命令将更改推送到 GitHub(如果你启用了 force push 保护,则可能需要使用 --force-with-lease):
    bash
    git push origin master --force
    

通过这些步骤,你可以确保你的 fork 仓库包含了上游仓库的最新更改,并且你的更改整合到了一个新的 commit 中,使得你的仓库与上游仓库保持同步,同时只有一个 commit ahead。

基于 Linux 6.12 的 OpenWrt 24.10 固件
使用 DwarFS 压缩文件