使用git set-url

时间:2016-02-19 20:52:34

标签: git

我需要创建一个补丁来提交我对应用程序所做的更改。

到目前为止我做了什么:

  1. git clone https://github.com/someapp
  2. 将远程修改为我的bitbucket帐户。
  3. 做出修改并承诺一切
  4. 推送对bitbucket的所有修改
  5. 将远程修改回原始存储库
  6. 尝试使用git format-patch origin/master --stdout创建补丁。此命令不生成输出
  7. 在这种情况下如何生成补丁?当我git log

    时,我可以看到所有提交

1 个答案:

答案 0 :(得分:1)

让我举例说明你的所作所为。当您克隆GitHub仓库origin/master和本地master分支时,两者都指向某个提交。我们称之为A。现在让我们说在更改了origin远程的URL后,您进行了一次提交B并将其推送。现在origin/mastermaster都指向提交B。当您将origin的网址更改回原始GitHub存储库时,origin/master仍指向提交B。因此,您尝试创建修补程序不会产生任何输出,因为您的本地masterorigin/master之间没有差异。

请记住,origin/master是一个"远程跟踪分支"。虽然远程跟踪分支旨在反映远程分支,但它们存储在本地。当您更改遥控器的URL时,可能会发生奇怪的事情,就像您看到的那样。

一种解决方案是在存储库中添加两个不同的遥控器。这样,您就可以跟踪BitBucket仓库的master和原始master仓库的GitHub