【问题标题】:Git pull request conflictGit拉取请求冲突
【发布时间】:2018-05-29 11:10:58
【问题描述】:

我对 git 很陌生,我担心我的代码会破坏主项目。

1 - 我从主项目中将一个新的 repo 分叉到我的帐户中。 并且我在上周更改了一些代码并请求 master。

2 - 同样,这周我也做了同样的事情。我更改了一些代码并对主项目进行了拉取请求,但它与主项目有冲突。

master project的所有者说“master project中有人改变了,你需要接受它”。 但我不知道如何接受。

我试过这些命令

git pull // 返回 Already up-to-date
git checkout master // 返回 已经在 'master'
git merge origin/master // 这会返回 Already up-to-date
git status // 这会返回 没有提交,工作树干净

See the working tree example

【问题讨论】:

  • 你在使用 github.com 吗?
  • 是的。我正在使用 github。

标签: git conflict pull-request


【解决方案1】:

据我了解,您似乎希望将更改从主存储库拉入您的存储库(反之亦然)。

无论哪种方式,在 GitHub 中,您都可以创建拉取请求以将更改从 head fork 提取到您的个人克隆中,或者您可以配置上游远程以从本地副本中获取更改。在那里,您将合并来自主存储库的更改并将它们推送回您在 GitHub 上的分支。

另请参阅https://help.github.com/articles/syncing-a-fork/ 作为参考。

如果您只需要接受拉取请求,只需浏览到主存储库(假设您是具有写入权限的人)并检查待处理的拉取请求。

【讨论】:

    【解决方案2】:

    首先检查冲突接受master的代码,然后在git repo的根目录中做

    $git 添加。 //将所有更改添加到 git 树中

    $git status //检查你添加到 git 的内容

    $git commit -m "fix conflict" //将提交注释添加到您的提交操作中

    $git rebase //冲突发生时将master上的代码与本地master进行比较,rebase会接受你最近的更改并自动覆盖旧代码,然后提交给git head。

    我强烈建议你使用rebase而不是merge,因为rebase比merge更聪明,当发生冲突时,rebase最重要的是将你的git树合并到原始主树中,所以你可以使用一棵干净的 git 树继续开发。

    【讨论】:

    • Rebase 重写历史。除非绝对必要,否则这不是一个好主意
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2014-04-30
    • 1970-01-01
    相关资源
    最近更新 更多