【发布时间】:2013-08-14 13:07:53
【问题描述】:
我在https://github.com/railstutorial/sample_app_rails_4 克隆了repo 并对其进行了很多更改(我将它用作我自己的应用程序的起点),现在我想将更改后的应用程序推送到我自己的github 上的repo帐户。
如何更改它链接到的 github 存储库?
【问题讨论】:
我在https://github.com/railstutorial/sample_app_rails_4 克隆了repo 并对其进行了很多更改(我将它用作我自己的应用程序的起点),现在我想将更改后的应用程序推送到我自己的github 上的repo帐户。
如何更改它链接到的 github 存储库?
【问题讨论】:
取自Git push everything to new origin
基本上你必须将一个新的 repo 关联到你的文件夹
git remote add origin <address>
git push origin <branchname>
【讨论】:
origin 已经存在 - 你必须 rm、rename 或 set-url 它。
您可以通过从本地存储库(通过命令行)创建新的远程来做到这一点。
git remote add <name> <url>
然后你可以调用:
git push <name> <repo_name>
要替换设置的默认“原点”远程,您可以运行以下命令:
git remote rm origin
git remote add origin <url>
【讨论】:
我认为这样做“最礼貌的方式”是:
git checkout -b <your_branch_name>(以防您之前没有这样做)git remote add github <your_repository_ssh_url>
git push github <your_branch_name>
通过这种方式,您将拥有一个与原始版本分叉的 repo,并将您的更改提交到一个单独的分支中。如果您想向原始存储库提交拉取请求,这种方式会更容易。
【讨论】:
github 是通常称为origin 的位。否则,简单明了。
正如 Deefour 所说,您的情况与Change the URI (URL) for a remote Git repository 中的情况并无太大区别。当您 clone 存储库时,它会添加为您的 remote,名称为 origin。您现在需要做的(因为您不再使用旧源)是更改 origin 的 URL:
$ git remote set-url origin http://github.com/YOU/YOUR_REPO
如果原始存储库会经常更新并且您希望不时获得这些更新,那么最好添加一个新的origin,而不是编辑remote:
$ git remote add personal http://github.com/YOU/YOUR_REPO
或者甚至可以打电话给旧的upstream:
$ git remote rename origin upstream
$ git remote add origin http://github.com/YOU/YOUR_REPO
然后,每当您想从upstream 获取更改时,您都可以:
$ git fetch upstream
由于这个源是一个示例存储库(似乎是一种开始的模板),我认为根本不需要保留它或分叉它 - 我将在这里使用第一个替代方案.
【讨论】:
我有类似的情况,但在我的情况下,我只需要按照建议使用 https,如下所示:
$ git remote set-url origin https://github.com/YOU/YOUR_REPO
【讨论】:
GitHub:git clone 别人的仓库 & git push 到你自己的仓库
我将其他人的存储库称为其他存储库。
在github.com 创建一个新的存储库。(这是你的存储库)
将其他存储库克隆到您的本地计算机。(如果您还没有这样做的话)
git clone https://github.com/other-account/other-repository.git将本地存储库的当前“origin”重命名为“upstream”。
git remote rename origin upstream为本地存储库提供一个指向您的存储库的“origin”。
git remote add origin https://github.com/your-account/your-repository.git将本地存储库推送到 您在 github 上的存储库。
git push origin master现在 'origin' 指向您的存储库,而 'upstream' 指向其他存储库.
git checkout -b my-feature-branch 为您的更改创建一个新分支。git commit 您的存储库。git pull upstream master 将更改从其他存储库拉取到您的主分支。【讨论】:
git push origin master 我得到:... Compressing objects: 100% (1093/1093), done. Writing objects: 100% (4185/4185), 504.89 KiB | 126.22 MiB/s, done. Total 4185 (delta 3049), reused 4185 (delta 3049) remote: Resolving deltas: 100% (3049/3049), done. remote: pre-receive.sh: execution exceeded 5s timeout To https://github.com/your-account/your-repository.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://github.com/your-account/your-repository.git'
你的目的可能是把这个 repo 放在你的身上,让它成为你的。
.git/并重新初始化。
rm -rf .git
git init
git add .
git commit -m "your commit message"
git remote add origin
git push origin master
【讨论】:
.git 目录吗? git init 不会把它抹掉吗?
克隆后,将文件夹中的文件复制到新文件夹中,然后重新开始 git初始化,
我遇到了类似的问题,我必须先更改文件夹目录,然后才能将更改暂存到我的存储库。
或者您可以通过命令删除当前存储库来源 git 远程删除原点。
【讨论】:
为了省事,我通常会这样做
在那里照常进行,你不会被 git 的问题绊倒。我经常这样做。当然不像其他答案那样“纯粹”,但没有创伤并且消除了您可能遇到的任何潜在问题。
【讨论】:
我也有同样的问题。如果你只是想要 repo 中的文件并像普通文件一样推送它们,你可以..
它没有过多地使用命令行并遇到问题的麻烦。
【讨论】: