ご意見やご提案をいただき、ありがとうございます。開発者とインテグレーターに裸git push
とを使用させる方法は次のgit pull
とおりです。
開発者向け
上記の最も単純なインテグレーション マネージャー ワークフローでは、開発者は ( ) を複製git clone
したため、ローカル マスター ブランチのリモート マスター ブランチを自動的に追跡しているため、必要なものは次のとおりです。
git pull
彼女のローカル マスター ブランチを更新するには。彼女が他のブランチで作業している場合は、Adam が提案したように、追跡している上流のブランチを更新できます。
git branch --set-upstream MYOLDBRANCH origin/master
# or, use longer, more explicit syntax, like:
git branch --set-upstream MYOLDBRANCH refs/remotes/origin/master
追跡されたブランチ (この場合はオリジン/マスター) がデフォルトでプルされます。
デフォルトのプッシュ ターゲットは別のブランチであり、同じ名前ではないため、push.default が tracking、current、または matching であることを利用することはできません。代わりに、開発者は次のように、.git/config ファイル内の特定のリモートへのすべてのプッシュに対して、デフォルトの source:destination refspec を設定する必要があります。
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = GITREPOHOSTNAME:REPONAME
push = master:refs/personal/MYDEVNAME/MYBRANCHNAME
次のようにエイリアスを作成することもできます。
git config alias.pushToMyBr 'push origin master:refs/personal/MYDEVNAME/MYBRANCHNAME
エイリアスは非常に強力で、キーストロークを回避する究極の柔軟性を提供します。:-) 上記のケースは、次の簡単な方法で実行できます。
git pushToMyBr
インテグレーター向け
この単純なケースでは、インテグレーターは通常、origin/master という 1 つの場所にプッシュします。push.default が matching、tracking、または current に設定されている場合、次のようにベア プッシュが機能します。
git config push.default current
git checkout master
git push
さまざまな個人開発者ブランチからの頻繁なプルは、より困難なケースです。インテグレーターは、次のようにエイリアスを使用してタスクを簡素化できます。
git config alias.pullFromXY 'pull origin refs/personal/DEVNAMEX/BRANCHNAMEY:master
# or, pull to a specific topic branch
git config alias.pullFromABtoC 'pull origin refs/personal/DEVNAMEA/BRANCHNAMEB:branchC'
インテグレーターは、ブランチを作成して、次のように開発者の個人的なリモート ブランチを追跡することもできます。
git checkout -b test_devXbranchY origin/personal/DEVNAMEX/BRANCHNAMEY
# or, use a more specific syntax:
git checkout -b test_devXbranchY refs/remotes/origin/personal/DEVNAMEX/BRANCHNAMEY
これが機能するためには、インテグレーターは自分のフェッチ リストに個人的なブランチを追加する必要があります。これは、彼女の .git/config を次のように直接編集することで実現できます (git-config やその他の git コマンドでこれを行う方法がわかりません。)
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = MYGITHOSTNAME:MYREPONAME
fetch = +refs/personal/*:refs/remotes/origin/personal/*
# Fetch a specific developer's branches:
fetch = +refs/personal/devX/*:refs/remotes/origin/personal/devX/*
助けてくれてありがとう!これが、ヘッドスペースの外で gitolite と個人のブランチを使用している他の誰かに役立つことを願っています。
ありがとう!
トレバー