Prosiłeś, żebym ciągnął bez mówienia, z którą gałęzią chcesz się połączyć
TL;DR: mam gałąź "śledzoną", której nie mogę wyciągnąć.
Więc jestem w "wiadrze-4":
$ git branch -v
bucket-1 410f7b5 * gh-53 * gh-48 * "Share App"
bucket-2 7ed70a2 * upgrade to SOLR 3.3.0
bucket-3 400ffe4 * emergency fix prod issue
* bucket-4 64c2414 Merge branch 'bucket-3' into bucket-4
master 8dc4854 [ahead 1] * gh-73
Chciałbym ściągnąć zmiany z mojego pilota:
$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.bucket-4.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "bucket-4"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
Hmm, dziwne, myślałem, że już dodałem "bucket-4" jako gałąź śledzenia. Zobaczmy:
$ git remote show origin
* remote origin
Fetch URL: [email protected]:abcd/main.git
Push URL: [email protected]:abcd/main.git
HEAD branch (remote HEAD is ambiguous, may be one of the following):
bucket-3
master
Remote branches:
bucket-1 tracked
bucket-2 tracked
bucket-3 tracked
bucket-4 tracked
master tracked
Local branches configured for 'git pull':
bucket-1 merges with remote bucket-1
bucket-2 merges with remote bucket-2
bucket-3 merges with remote bucket-3
master merges with remote master
Local refs configured for 'git push':
bucket-1 pushes to bucket-1 (up to date)
bucket-2 pushes to bucket-2 (up to date)
bucket-3 pushes to bucket-3 (up to date)
bucket-4 pushes to bucket-4 (local out of date)
master pushes to master (fast-forwardable)
Rzeczywiście, bucket-4 jest oznaczony jako "śledzony" , ale jakoś jest skonfigurowany do pchania, ale nie ciągnięcia.
Patrząc na mój plik .git/config
, widzę, że mam wpisy " remote "i" merge " dla większości moich gałęzi, ale nie dla wiadro-4. Jak to jest w ogóle uważane za "śledzone" bez tego?
[remote "origin"]
url = [email protected]:abcd/main.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "rel-2011-07-07"]
remote = origin
merge = refs/heads/rel-2011-07-07
[branch "bucket-1"]
remote = origin
merge = refs/heads/bucket-1
[branch "bucket-2"]
remote = origin
merge = refs/heads/bucket-2
[branch]
autosetupmerge = true
[branch "bucket-3"]
remote = origin
merge = refs/heads/bucket-3
Widzę, że prawdopodobnym rozwiązaniem jest dodanie remote/merge
wpisów dla bucket-4 do mojego pliku konfiguracyjnego. Ale jak to jest uważane za "śledzone" bez tego? bucket-4 został stworzony lokalnie, a następnie wypchnięty na serwer z tego repo, więc podejrzewam, że jakoś nie skonfigurowałem śledzenia poprawnie dla tej gałęzi.
Czy jest jakaś konfiguracja, którą mogę dodać, aby wszystkie lokalne oddziały prawidłowo śledziły swoje piloty w przyszłości?
2 answers
Jest napisane bucket-4 pushes to bucket-4
tylko dlatego, że domyślnym naciśnięciem gałęzi jest przesunięcie jej do jednej z pasującą nazwą na pilocie. (Zauważ, że nadal jest to domyślne, nawet jeśli lokalna gałąź śledzi gałąź zdalnego śledzenia, a gałąź zdalnego śledzenia odpowiada gałęzi o innej nazwie w zdalnym repozytorium.)
Najprostszym sposobem skonfigurowania związku pomiędzy bucket-4
i bucket-4
w origin
jest upewnienie się, że następnym razem, gdy naciśniesz, do:
git push -u origin bucket-4
Alternatywnie możesz zrobić:
git branch --set-upstream-to origin/bucket-4
Aby odpowiedzieć bezpośrednio na kilka pytań:
Jak to jest w ogóle uważane za "śledzone" bez tego?
W tym przypadku nie jest-nie śledzi gałęzi remote-tracking w żadnym sensie, jeśli nie ma branch.bucket-4.merge
lub branch.bucket-4.remote
w Twoim Git config. Wyjście git remote show origin
pokazuje tylko, gdzie branch będzie domyślnie wypychany.
Nie wydaje mi się. Kiedy tworzyłeśCzy jest jakaś konfiguracja, którą mogę dodać w chcesz, aby wszystkie lokalne oddziały prawidłowo śledziły swoje piloty w przyszłości?
bucket-4
lokalnie, jak zakładam, gałąź zdalnego śledzenia nie istniała, więc nie można jej skonfigurować w tym momencie - byłoby to bardzo mylące domyślne zachowanie. Musisz tylko pamiętać, aby dodać -u
do swojej pierwszej git push
tej gałęzi do jej repozytorium.
Mam nadzieję, że to pomoże.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-28 12:03:47
git branch --set-upstream <branch> origin/<branch>
był przestarzały co najmniej od 1.8.2.3 (moja wersja).
Zamiast tego użyj git branch --set-upstream-to=origin/<branch> <branch>
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-06 17:43:35