ruby-on-rails 如何在存储库之间切换

kadbb459  于 2022-11-19  发布在  Ruby
关注(0)|答案(3)|浏览(207)

我使用的是一个以前的开发人员提供的github存储库。
我是这个项目中唯一的编码者,所以我把这个项目转移到了我自己的github库中。
现在我想把soley交给我的回购协议。
不幸的是,我意识到我从来没有修改过我的.git/config,所以我仍然使用旧的repo。我只是把它修改成合适的url,当我输入:

$> git status

它会传回:

=> Working directory clean.

但是我知道这不是因为我已经提交了几次,所以我的本地盒子有不同的代码,然后它指向我的存储库。
我的问题是这样的。显然我已经完成了一半的过程。我需要重新派生来更新,然后我就可以了。或者我需要运行一个特殊的命令来让我的本地盒子知道它的'git status'命令正在瞄准一个新的repo来与它自己进行比较?同样,我是否遗漏了其他非常重要的东西:D?
谢谢大家。

b4qexyjb

b4qexyjb1#

您可以使用git remote管理您的远程

  • 重命名原点
git remote rename origin old_origin
  • 添加新原点
git remote add origin git://github.com/my/forked/repo.git
    git fetch origin # will create all the remote branches references 
                     # in your local repo

你也可以轻松地为当前的master分支(git 1.7及更高版本)执行setup a new upstream

git branch --set-upstream master origin/master

git status的“nothing to commit (working directory clean)“消息不会阻止您推送。
变更原点后,您应该会看到:

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by xxx commits.
#
nothing to commit (working directory clean)

这意味着你有一些提交要推到你的新原点。
注:“git remote“(man)rename无法在不获取refspec的情况下重命名远程对象,Git 2.39(Q4 2022)已对此进行了更正。
参见Jeff King ( peff )commit 5a97b38(2022年9月22日)。
(由Junio C Hamano -- gitster --合并到commit 20a5dd6,2022年10月10日)
我的天啊!在不提取refspec的情况下处理远程重命名
报告人:约翰·A·洛伊哈根
签署人:杰夫·金
当尝试重命名没有fetch refspec的远程时,我们返回一个错误:

$ git config --unset-all remote.origin.fetch
$ git remote rename origin foo
fatal: could not unset 'remote.foo.fetch'

为了让事情变得更加混乱,我们实际上通过git_config_rename_section()完成了配置修改。
之后,我们尝试重写fetch refspec(用refs/remotes/foo代替origin)。
但是我们调用git_config_set_multivar()来删除现有的条目失败了,因为没有任何条目,它调用了die()。
我们可以通过使用config调用的“gently”形式并检查错误代码来修复这个问题。
但还有一个更简单的解决办法:如果我们知道没有要重写refspecs,那么我们可以完全跳过这一部分。

h22fl7wq

h22fl7wq2#

git status只显示了工作目录的状态,而不是整个仓库。看起来你只需要修改git pushgit pull默认使用的remote。打开.git/config,找到你的branch.<branch>条目,然后修改它们,还有你的remote.<remote>条目。例如,你的master条目看起来像这样:

[branch "master"]
    remote = origin
    merge = refs/heads/master

只需将remote更改为引用 * 您的 *(分叉)遥控器。
此外,您的远程条目可能如下所示:

[remote "myremote"]
    url = git://github.com/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

您可以添加一个push条目,这样默认情况下会推送master分支:

[remote "myremote"]
    url = git://github.com/me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    push = master
zzlelutf

zzlelutf3#

在此之前我手动修改了我的.git/config以包含我的新仓库URL。这就是为什么我不必像Von建议的那样重命名或添加任何源。
然后我就猜到了然后表演了

$> git fetch origin

返回

From git@github.com:gotoAndBliss/hq_channel
 17326ca..043d395  master     -> origin/master
 * [new branch]      panda_streaming -> origin/panda_streaming
 + 6ec9bf8...becbcc6 testing    -> origin/testing  (forced update)

然后在git状态下我得到了

# On branch testing
# Your branch is ahead of 'origin/testing' by 9 commits.

我推了起源测试,我想我现在的目标。

相关问题