我有一个备份在公用git存储库(git1
存储库)中的文件夹。
现在,我们做了一个回购,以保留文件的最终版本,并为工作文件设置了单独的Git存储库(git2
回购)。
希望这样可以使事情保持清洁。 git存储库是完全独立的,而不是相同的分支。
我遇到的问题是我无法弄清楚如何更改我的工作文件夹备份到的Git存储库。
我创建了一个新文件夹,然后将旧文件夹的内容复制到了这个新文件夹中(cp
命令)。现在,当我执行git push并放置新git repo(git2
repo)的地址时,它会显示一条失败消息
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/git2repo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
当我做git status
时,我得到:
On branch master
Your branch is up to date with 'origin/master'.
当我做git remote -v
时:
origin https://github.com/git1repo.git (fetch)
origin https://github.com/git1repo.git (push)
它为fetch
和push
提供了与我们设置的上一个相同的git地址(git1
回购)-不是我要推送到的新地址({git2
回购))。
不确定如何更改文件夹的推送位置,我显然不想更改git1
存储库中的任何内容。
答案 0 :(得分:0)
每当您要推送时,最好将其推送到裸仓库,即没有任何文件(没有工作树)的仓库 ,只有.git内容。
git init --bare dest
cd /path/to/repo/to/backup
git remote add backup /path/to/bare/repo/dest
git push --mirror backup
通常,我通过在git push命令中指定存储库“ backup”来更改 where 以进行推送:请参见git push <repository>
。
如果像OP那样需要在现有远程名为“ origin”的远程站点后面修复URL,请考虑:
git remote set-url origin https://github.com/git2repo.git
git remote -v
backup https://github.com/git2repo.git (fetch)
backup https://github.com/git2repo.git (push)
origin https://github.com/git2repo.git (fetch)
origin https://github.com/git2repo.git (push)