Как мне найти местоположение источника / мастера в git и как его изменить? - PullRequest
224 голосов
/ 10 ноября 2008

Я новичок в Git. Недавно я переместил проект Rails из Subversion в Git. Я следовал за учебником здесь: http://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/

Я также использую unfuddle.com для хранения своего кода. Я делаю изменения на своем ноутбуке Mac в поезде на работу и обратно, а затем подталкиваю их в режим ожидания при наличии сетевого подключения с помощью следующей команды:

git push unfuddle master

Я использую Capistrano для развертываний и извлекаю код из репозитория unuddle, используя главную ветвь.

В последнее время я заметил следующее сообщение при запуске «git status» на моем ноутбуке:

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

И я не понимаю, почему. Я думал, что мой ноутбук был источником ... но не знаю, является ли тот факт, что я первоначально вытащил из Subversion или подтолкнуть к Unuddle, является причиной того, что сообщение появляется Как я могу:

  1. Узнайте, где Git думает, что 'origin / master' находится?
  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, как предложил Аристотель Пагальцис, я получаю следующее:

~/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 и, вероятно, из того места, где я пытался развернуться. Тогда я считаю, что я извлек свежую копию с сайта unuddle в каталог geekfor.

Похоже, я должен последовать совету dbr и сделать:

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

Ответы [ 13 ]

0 голосов
/ 17 января 2012

У меня возникла проблема "Ваша ветвь опережает 'origin / master' от nn commit." когда я отправил в удаленный репозиторий:

git push ssh://git@xxx.repositryhosting.com/yyy/zzz.git

Когда я обнаружил, что мой удаленный адрес был в файле .git / FETCH_HEAD и использовал:

git push

проблема исчезла.

0 голосов
/ 23 августа 2011

Можно выполнить сброс до определенного коммита до того, как произойдут ваши коммиты.

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

Используйте git log, чтобы узнать, какой коммит вы имели до того, как произошли локальные изменения.

$ git log
commit 3368e1c5b8a47135a34169c885e8dd5ba01af5bb
...
commit baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
...

Запишите локальные коммиты и сбросьте их до предыдущего коммита:

git reset --hard baf8d5e7da9e41fcd37d63ae9483ee0b10bfac8e
0 голосов
/ 10 июня 2011

Мне было интересно то же самое в моем репо. В моем случае у меня был старый пульт, который я больше не нажимал, поэтому мне нужно было его удалить.

Получить список пультов:

git remote

Удалите тот, который вам не нужен

git remote rm {insert remote to remove}
...