Почему у меня возникают проблемы с добавлением новых веток в мой репозиторий Git? - PullRequest
5 голосов
/ 25 октября 2010

В качестве ответа на мой вопрос о недоступных ветвях после миграции svn в git , у меня другая проблема: я не могу отправить новые ветки в мой центральный репозиторий Git.

$ git clone ssh://server/opt/git/our_app.git
$ cd our_app
$ git branch my-test-branch
$ git checkout my-test-branch
$ echo test > test.txt
$ git add test.txt
$ git commit test.txt -m "test commit"
[master ed81ec0] test commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 test.txt
$ git push
Everything up-to-date

Итак, это не подталкивает мою ветку к серверу.Коллега посоветовал мне заглянуть в мой .git / config, который выглядит следующим образом:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = ssh://server/opt/git/our_app.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Мне посоветовали вручную добавить push-запись:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = ssh://server/opt/git/our_app.git
    push = refs/heads/*:refs/heads/*

Теперь все выглядит лучше:

$ git push
Password: 
Counting objects: 1, done.
Delta compression using up to 1 threads.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (1/1), 5 bytes, done.
Total 1 (delta 1), reused 0 (delta 0)
To ssh://server/opt/git/our_app.git
 * [new branch]      my-test-branch -> my-test-branch

Хотя это сработало, оно все равно похоже на взлом.Как правильно это сделать?

Ответы [ 3 ]

4 голосов
/ 25 октября 2010

Если вы просто хотите отправить свою ветку с тем же именем, просто используйте

git push origin my-test-branch

Если вы хотите, чтобы ваши изменения появились в основной ветке исходного репо:

git push origin my-test-branch:master
4 голосов
/ 25 октября 2010

Вы можете отправить ветку в удаленный репозиторий с помощью

git push origin my-test-branch

Затем вы можете просмотреть все удаленные ветки с помощью

git branch -r

Вот введение в создание / удаление удаленных ветвей.

4 голосов
/ 25 октября 2010

Чтобы вставить новую ветку, используйте git push origin my-test-branch

...