如何将存储库从一个切换到另一个

时间:2010-06-24 15:04:18

标签: ruby-on-rails git repository github fork

我使用的是以前开发人员的github存储库。

我是这个项目中唯一的编码器,所以我将项目分支到我自己的github存储库。

现在我想对我的回购承诺。

不幸的是,我意识到我从未改变过我的.git / config,因此我仍然致力于旧的回购。我只是将其更改为相应的网址,当我输入时:

$> git status

它返回:

=> Working directory clean.

但我知道这不是因为我做了几件承诺。因此,我的本地框具有与我的存储库中指向的代码不同的代码。

我的问题是这个。显然我已经完成了这个过程的中途。我需要重新分叉更新,然后我很好。或者是否有一个特殊的命令我需要运行以让我的本地方框知道它的'git status'命令是针对一个新的repo来比较自己?同样,我错过了一些非常重要的事情:D?

谢谢大家。

3 个答案:

答案 0 :(得分:3)

您可以使用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

您也可以轻松setup a new upstream获取当前的主分支(git 1.7及更多):

git branch --set-upstream master origin/master

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

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

这意味着你有一些提交到你的新起源。

答案 1 :(得分:0)

git status仅显示工作目录的状态,而不是整个存储库。您似乎只需要更改git pushgit pull默认使用的遥控器。打开.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

答案 2 :(得分:0)

总的来说,我应该把它包含在这个答案中。是我手动改变我的.git / config以包含我的新存储库URL。这就是为什么我没有像冯建议的那样重命名或添加任何来源。

然后我猜对了并执行了

 $> 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.

我git推动了原点测试,我认为我现在正在攻击目标。