Как мне обновить мою ветку в git? - PullRequest
1 голос
/ 30 марта 2012

(1) Я раскладываю репо человека в Github, давайте назовем репо человека как remoteRepo, репо моего github как myRepo. (2) Я клонирую его на свой локальный компьютер. Я использую эту команду,

$git clone [remoteRepo] -b [branch_name] /my/local/folder

Теперь remoteRepo изменился. Я собираюсь обновить свои локальные файлы, чтобы сохранить тот же исходный код с его.

Мне понравилось,

$ git remote add upstream [remoteRepo]
$ git fetch upstream
$ git fetch upstream 
$ git merge upstream/[branch_name]

Но это не работает. Ничего не обновляй, в чем причина? Я следую за документом из github help

Ответы [ 4 ]

1 голос
/ 30 марта 2012
$ git remote add upstream [remoteRepo]
$ git fetch upstream
$ git fetch upstream 
$ git merge upstream/[myBranch]

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

0 голосов
/ 30 марта 2012

посмотрите на список филиалов с git branch

оформить ветку, в которую вы хотите объединить изменения с git checkout <mainbranch>

объединить ветви с git merge <theotherbranch>

и нажмите изменения

0 голосов
/ 30 марта 2012

Откуда ты знаешь, что это не сработало? Попробуйте 'git log', чтобы подтвердить сообщение автоматической фиксации слияния, и 'git diff HEAD ^', чтобы увидеть, что слияние сделало. Также вы можете немного упростить первоначальное слияние как «git pull upstream myBranch».

[править]

Это работает для меня. Вот полный журнал ниже. Чтобы диагностировать вашу проблему - когда вы сделали «git fetch», вы должны увидеть что-то, что подтверждает выборку. После «удаленного добавления» выводит ли git branch -a удаленные ветви? Вы также можете запустить git remote show upstream, чтобы убедиться, что ваш репозиторий «связан» с другим. Вы вытаскиваете из хранилища, которое вы клонировали; другие люди тянут от этого; они вернули свою работу обратно в нее? В противном случае вы не увидите их изменений.

Журнал:

$ git clone dev1 -b br1 dev2
Cloning into 'dev2'...
done.
$ cd dev2
$ git remote add upstream ../dev1
$ git branch -a
* br1
  remotes/origin/HEAD -> origin/master
  remotes/origin/br1
  remotes/origin/master

# NOW change content in the 'dev1' (the remote repository)
$ cd ../dev1
$ git checkout br1
Switched to branch 'br1'
$ ls
bar.c   foo.c

$ FL='baz.c'; echo "stuff" > $FL; git add $FL; git commit -m "$FL"
[br1 ef45921] baz.c
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 baz.c
$ ls
bar.c   baz.c   foo.c

 # Now return to 'dev2' and 'pull'

$ cd ../dev2
$ ls
bar.c   foo.c

$ git pull upstream
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From ../dev1
 * [new branch]      br1        -> upstream/br1
 * [new branch]      master     -> upstream/master
You asked to pull from the remote 'upstream', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
$ git pull upstream br1
From ../dev1
 * branch            br1        -> FETCH_HEAD
Updating 207c1a2..ef45921
Fast-forward
 baz.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 baz.c

 # Confirm 'baz.c' exists on 'dev2'
$ ls
bar.c   baz.c   foo.c
0 голосов
/ 30 марта 2012

Я не совсем понимаю ваш вопрос. Если вы хотите изменить местоположение удаленного репозитория, вы можете перейти в папку .git, открыть файл конфигурации и изменить свой удаленный.

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@remote.com:folder/git_location.git

Есть также команды для смены пульта из командной строки. github help - git remotes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...