1. ホーム
  2. ギット

[解決済み】gitでorigin/masterの場所を確認する方法と、それを変更する方法を教えてください。

2022-04-05 21:45:16

質問

私は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 が考える 'origin/master' がどこにあるのかを知るには?
  2. 他の場所にある場合、私のラップトップを「オリジン/マスター」にするにはどうしたらいいですか?
  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    [email protected]:spilth/geekfor.git

さて、興味深いことに、私のプロジェクトで作業しているのは geekfor ディレクトリにある私のローカルマシンがオリジンであると表示されます。 gf ディレクトリを作成します。 私は gf は、プロジェクトを Subversion から Git に変換したときに使った一時ディレクトリで、おそらくここから unfuddle にプッシュしたのでしょう。 それから、unfuddle から新しいコピーをチェックアウトして geekfor ディレクトリを作成します。

ということで、dbrさんのアドバイスに従って、実行したほうがよさそうです。

git remote rm origin
git remote add origin [email protected]:spilth/geekfor.git

解決方法は?

<ブロッククオート

1. origin/master'がどこにあるとGitが考えているのかを調べます。 git-remote

git remote show origin

...これは次のようなものを返します...

* remote origin
  URL: [email protected]:~/something.git
  Remote branch merged with 'git pull' while on branch master
    master
  Tracked remote branch
    master

リモートとは、基本的にリモートリポジトリへのリンクのことです。そうすると...

git remote add unfuddle [email protected]/myrepo.git
git push unfuddle

...gitはあなたが追加したアドレスに変更をプッシュします。これはリモートリポジトリのブックマークみたいなものです。

を実行すると git status は、リモートのコミットが (ローカルリポジトリと比較して) 欠けているかどうか、欠けている場合は何コミット分欠けているかをチェックします。すべての変更を "origin" にプッシュすれば、両者は同期しているので、このメッセージは表示されません。

<ブロッククオート

2. 他の場所にある場合、私のノートパソコンを「オリジン/マスター」にするにはどうすればいいのでしょうか?

こんなことをしても意味がない。origin" が "laptop" にリネームされたとします。 git push laptop をノートパソコンから実行することができます。

オリジンリモートを削除する場合は、.

git remote rm origin

これは何も削除しません(ファイルコンテンツ/リビジョン履歴の観点から)。これは "あなたのブランチは先に進んでいます..." というメッセージを止めます。これはもうあなたのリポジトリとリモートを比較しないためです(消えてしまったのですから!)。

ひとつ覚えておいてほしいのは origin これは、git が使用するデフォルトの名前に過ぎません。

Gitは origin のような場合は、デフォルトで git push または git pull . ですから、よく使うリモート(あなたの場合はUnfuddle)がある場合は、"origin"としてUnfuddleを追加することをお勧めします。

git remote rm origin
git remote add origin [email protected]:subdomain/abbreviation.git

または、set-url を使って上記を1つのコマンドで実行します。

git remote set-url origin [email protected]:subdomain/abbreviation.git

そうすると、単純に git push または git pull の代わりに、更新するために git push unfuddle master