从别人的 Github 克隆一个存储库并将其推送到我的 Github 上的存储库

  • 本文关键字:Github 存储 一个 别人 git github
  • 更新时间 :
  • 英文 :


我在https://github.com/railstutorial/sample_app_rails_4并对其进行了大量更改(我将其作为自己应用程序的起点),现在我想将更改后的应用程序推送到我自己的github帐户上的回购。

如何更改它所链接的github回购?

正如Deefour所说,您的情况与更改远程Git存储库的URI(URL)中的情况没有太大不同。当您clone存储库时,它将作为您的remote添加,名称为origin。您现在需要做的(因为您不再使用旧的源代码)是更改origin的URL:

$ git remote set-url origin http://github.com/YOU/YOUR_REPO

如果原始存储库经常更新,并且您希望不时获得这些更新,那么最好添加一个新的remote:,而不是编辑origin

$ 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

由于源代码是一个示例存储库(一开始似乎是一个模板),我认为根本没有必要保留它,也没有必要分叉它——我在这里选择第一个选项。

GitHub:git clone他人的存储库&git push到您自己的存储库

我将把其他人的存储库称为其他存储库


  1. 在github.com上创建一个新的存储库。(这是您的存储库
  • 将其命名为其他存储库
  • 不要使用README、.gitignore或许可证对其进行初始化
  1. 其他存储库克隆到本地计算机(如果您还没有这样做)
  • git clone https://github.com/other-account/other-repository.git
  1. 将本地存储库的当前"原点"重命名为"upstream。"
  • git remote rename origin upstream
  1. 给本地存储库一个指向您的存储库的"原点"
  • git remote add origin https://github.com/your-account/your-repository.git
  1. 将本地存储库推送到github上的您的存储库
  • git push origin main

现在"原点"指向您的存储库&上游’指向其他存储库

  • 使用git checkout -b my-feature-branch为您的更改创建一个新分支
  • 您可以像往常一样git commit您的存储库
  • 使用git pull upstream main将更改从其他存储库拉到主分支

删除git并重新初始化

你的目的可能是把回购放在你的身上,让它成为你的。

其想法是删除.git/并重新初始化

  1. 转到克隆的repo文件夹 rm -rf .git
  2. 重新初始化它,然后添加您的遥控器并进行第一次推送。
    git init
    git add .
    git commit -m "your commit message"
    git remote add origin 
    git push origin master
    

我认为这样做的"最礼貌的方式"是:

  1. 在您的GitHub帐户上分叉原始回购
  2. 为您的更改签出一个新分支git checkout -b <your_branch_name>(以防您以前没有这样做)
  3. 为本地存储库添加新的远程:git remote add github <your_repository_ssh_url>
  4. 将您美丽的新分支推送到您的github存储库:git push github <your_branch_name>

通过这种方式,您将有一个分支到原始的回购,并在一个单独的分支中提交您的更改。如果您想向原始回购提交提取请求,这种方式会更容易。

您可以通过从本地存储库创建一个新的远程(通过命令行)来实现这一点。

git remote add <name> <url>

然后你可以打电话:

git push <name> <repo_name>

要替换默认的"原点"远程设置,您可以运行以下操作:

git remote rm origin
git remote add origin <url>

从Git获取,将所有内容推送到新的来源

基本上,你必须将一个新的回购与你的文件夹相关联

git remote add origin <address>
git push origin <branchname>

我也遇到过类似的情况,但在我的情况下,我只需要按照建议,使用https,如下所示:

$ git remote set-url origin https://github.com/YOU/YOUR_REPO

克隆后,将文件从其文件夹复制到新文件夹中,然后使用git init,

我也遇到了类似的问题,在对我的repo进行更改之前,我必须更改文件夹目录。

或者您可以通过命令删除当前存储库原点git远程删除原点。

为了避免混乱,我通常会做这个

  1. 将其克隆到临时目录
  2. 使用README创建新的git repo
  3. 将该回购复制到我的机器上
  4. 从原始文件中删除所有git文件
  5. 将所有文件复制到我的存储库
  6. 推动它

在那里照常进行,你不会被git的问题绊倒。我经常这样做。当然没有其他答案那么"纯粹",但没有创伤,可以消除你可能遇到的任何潜在问题。

使用vscode,这些其他解决方案对我来说不太管用,

相反,我运行

git初始化

这将使"新分支"按钮在您提交时生成一个全新的存储库。我不知道如何提交到一个尚未初始化的存储库中。

edit:由于我在学习教程,我对git不是很有经验,这些标志是更改git远程URL 后被远程拒绝的罪魁祸首(不允许浅层更新)

截至2022年12月,这对我有效。直接

  1. 我克隆了repo,然后在GitHub上创建了一个新的repo,它有一个新名称,没有文件

  2. 我复制了文件夹并将其重命名为

  3. 在终端(文件夹内)中,rm -rf .git对所有现有的git文件进行建模

  4. I git init初始化

  5. git add -- . ': path',其中的路径是一个具有较大权重的目录,我不想提交。如果添加所有,则会导致错误

  6. git commit -m "message"

  7. git remote add origin https://github.com/xxx/xxxx.git至新建回购

  8. git branch -M main

  9. git push -u origin main

简单地说:

git remote add origin https://github.com/your-username/name-of-repo.git
git branch -M main
git push -u origin main

UPD:或者master而不是main取决于您的主早午餐的名称。

我也有同样的问题。如果你只想把文件放在repo中,并像推送普通文件一样推送它们,你可以

  1. 下载zip
  2. 打开终端(或窗口上的cmd)
  3. 删除.github和.gitigore文件(rm-r.github)(rm.gitigore)
  4. 将目录复制并粘贴到项目中
    Github不会知道这些来自另一个repo,因为配置文件已经不见了

它没有太多扰乱命令行和遇到问题的麻烦。

最新更新