小编典典

如何在 git 中找到 origin/master 的位置,以及如何更改它?

all

我是一个 Git 新手。我最近将一个 Rails 项目从 Subversion 移到了 Git。我在这里按照教程:http
://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-
repository-to-a-git-
repository/

我也在使用 unfuddle.com 来存储我的代码。我在上下班的火车上对我的 Mac 笔记本电脑进行了更改,然后在我有网络连接时使用以下命令将它们推送到
unfuddle:

git push unfuddle master

我使用 Capistrano 进行部署,并使用 master 分支从 unfuddle 存储库中提取代码。

最近,当我在笔记本电脑上运行“git status”时,我注意到以下消息:

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

我很困惑为什么。我认为我的笔记本电脑是起源......但不知道我最初从 Subversion 中提取或推送到 Unfuddle
的事实是否是导致消息显示的原因。我怎样才能:

  1. 找出 Git 认为“起源/主人”在哪里?
  2. 如果它在其他地方,我如何将我的笔记本电脑变成’origin/master’?
  3. 收到此消息即可离开。这让我觉得 Git 对某事不满意。

我的 Mac 正在运行 Git 版本 1.6.0.1。


当我git remote show origin按照 dbr 的建议运行时,我得到以下信息:

~/Projects/GeekFor/geekfor 10:47 AM $ git remote show origin
fatal: '/Users/brian/Projects/GeekFor/gf/.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly

当我git remote -v按照 Aristotle Pagaltzis 的建议运行时,我得到以下信息:

~/Projects/GeekFor/geekfor 10:33 AM $ git remote -v
origin  /Users/brian/Projects/GeekFor/gf/.git
unfuddle    git@spilth.unfuddle.com:spilth/geekfor.git

现在,有趣的是,我正在geekfor目录中处理我的项目,但它说我的来源是gf目录中的本地计算机。我相信gf这是我在将项目从 Subversion
转换为 Git 时使用的临时目录,并且可能是我推到 unfuddle 的地方。然后我相信我从 unfuddle 到geekfor目录中检查了一个新副本。

所以看起来我应该听从 dbr 的建议并做:

git remote rm origin
git remote add origin git@spilth.unfuddle.com:spilth/geekfor.git

阅读 79

收藏
2022-06-04

共1个答案

小编典典

1.找出 Git 认为 ‘origin/master’ 在哪里使用git- remote

git remote show origin

..这将返回类似..

* remote origin
  URL: me@remote.example.com:~/something.git
  Remote branch merged with 'git pull' while on branch master
    master
  Tracked remote branch
    master

远程基本上是到远程存储库的链接。当你这样做..

git remote add unfuddle me@unfuddle.com/myrepo.git
git push unfuddle

..git 会将更改推送到您添加的地址。它就像一个书签,用于远程存储库。

当您运行时git status,它会检查远程是否缺少提交(与您的本地存储库相比),如果是,则检查有多少提交。如果您将所有更改推送到“原点”,两者都将同步,因此您不会收到该消息。

2.如果它在其他地方,我如何将我的笔记本电脑变成’origin/master’?

这样做没有任何意义。说“起源”被重命名为“笔记本电脑”——你永远不想git push laptop从你的笔记本电脑上做。

如果要删除原始遥控器,请执行此操作..

git remote rm origin

这不会删除任何内容(就文件内容/修订历史而言)。这将停止“您的分支在前面…”消息,因为它不再将您的存储库与远程存储库进行比较(因为它已经消失了!)

要记住的一件事是 没有什么特别的origin,它只是 git 使用的默认名称。

当你做origin类似git pushgit pull. 因此,如果您有一个经常使用的遥控器(在您的情况下是 Unfuddle),我建议您将
unfuddle 添加为“origin”:

git remote rm origin
git remote add origin git@subdomain.unfuddle.com:subdomain/abbreviation.git

或使用 set-url 在一个命令中执行上述操作:

git remote set-url origin git@subdomain.unfuddle.com:subdomain/abbreviation.git

然后你可以简单地做git pushgit pull更新,而不是git push unfuddle master

2022-06-04