【问题标题】:How to get latest code of Open Source Project where I have contributed如何获取我贡献的开源项目的最新代码
【发布时间】:2021-11-11 14:26:46
【问题描述】:

我为 GitHub 上的一个开源项目做出了贡献。只有一个分支master,在我的本地也有一个名为master 的分支。我贡献了大约3-4次。
当我写git pull 时,它会显示Already Up to Date。现在问题出在开源中有一些变化,但我无法获得更新。 就像他们在 README.md 中有 762 行代码,但我只有 722 行代码。我试过了,

  1. git 拉
  2. git 获取
  3. git reset --hard origin/master
  4. git fetch --all
  5. git reset --hard HEAD
  6. git 存储
    git 拉
  7. git 获取来源
    混帐状态

帮助我以安全的方式解决这个问题,而不会丢失本地的任何数据。

【问题讨论】:

  • git fetch && git diff origin/master master && git show --format=%H -s origin/master && git show --format=%H -s master 最后两个命令是比较head commit ID。
  • 我知道两者是一样的。但我仍然有 722 行代码,他们有 762
  • 相同的提交 ID 意味着您拥有完全相同的文件。 git diff 有什么不同吗?行数差异可以通过行尾问题来解释,这需要进一步调查。顺便说一句,repo 是开源的,您可以免费发布它的 URL 供我们检查文件。
  • git diff 不返回任何内容。 git status return 在分支 master 你的分支是最新的'origin/master'。
    我说的是线路差异,因为开源有更多我没有或无法获得的更新。

标签: git github open-source


【解决方案1】:

如果你拉取时它没有显示更新,那可能是因为你分叉了项目。您一直在推动和拉动的来源是您的分叉版本的来源。

如果您打印出.git/config,对于您的本地存储库,您可以查看是否是这种情况。只需在存储库的根目录中运行 cat .git/config

为了从项目中获取更新,请将他们的 git repo 添加为上游:

git remote add upstream <git url to their project>

然后,从上游获取更改:

git fetch upstream

您可以通过git diff查看他们所做的更改:

git diff master upstream/master

问题:您如何为项目贡献您的更改?

如果你推送了,那么很可能你只是推送到了你的分叉版本,而不是你自己的项目。

如果您创建了一个被接受的拉取请求,那么更改就会被合并。

他们的项目有你的变化吗?这决定了如何进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    相关资源
    最近更新 更多