我有一个私人存储库github
(比如“ProjectX”)。项目需求在中途发生了变化,这意味着必须重写代码。我不想失去在“ProjectX”上已经取得的进展,所以我做了以下事情:
- 在本地存储库中将“ProjectX”重命名为“ProjectX_advanced”。
- 像这样重命名远程源:
git remote rm origin
还在 GitHub 上重命名了该项目。
git remote add origin git@github-user:user/ProjectX_advanced.git
这是成功的。在终端上执行git remote -v
显示如下:
origin git@github-user:user/ProjectX_advanced.git (fetch)
origin git@github-user:user/ProjectX_advanced.git (push)
我还可以将更改推送到上述存储库。
3. 在 github 上创建了一个名为“ProjectX”的新仓库。
4. 在我的本地存储库中创建了一个名为“ProjectX”的新项目。
5. 像这样在其中初始化 git:
6. 像这样添加了一个新的远程源:
如果我现在在命令行上执行,我会得到正确的远程位置。
7. 当我现在尝试将本地 repo 中的更改推送到 github repo 时出现问题:
看到的错误消息::
git init
git add .
git commit -m "First commit" .
git remote add origin git@github-user:user/ProjectX.git
git remote -v
git push origin master
To git@github-user:user/ProjectX.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github-user:user/ProjectX.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
我在这里和这里看到了一些以前的问题,还有一些其他的问题表明我需要先进行git pull
合并,然后才能推送这些更改。
我的问题:
1. 如果我执行 a git pull
,我的新“ProjectX”将被我不需要的代码覆盖。我该如何解决?
2.我已重命名所有遥控器(输出git remote -v
如预期)。我错过了重命名一些遥控器吗?
3. 我该如何解决这个问题?