Git'i Gerrit Code Review ile kuruyorum ve Git'e yeni olabilecek kullanıcılar için gerekli Git komutlarını nispeten kolay bir şekilde yapmak için bir yol arıyorum.Gerrit ile birlikte kullanıldığında Git için spesifik yukarı itme refspec'i nasıl yapılandırılır?
git checkout baseline
git pull
git checkout -b work1234
git push -u origin work1234
Bu, bazı baseline
den kollara yeni bir çalışma paketi work1234
başlar ve son hamle şube oluşturur:
olan esasen yeni bir özellik dalı başlatmak için ben şu anda sahip komutları (Gerrit origin
olduğunu varsayarak) Gerrit ve yukarı akışını ayarlar. Özel bir refspec anında iletilmesi incelenmek üzere
[branch "work1234"]
remote = origin
merge = refs/heads/work1234
Şimdi, Gerrit istediği yeni kaydedilmesini, örneğin refs/for/work1234
: Yani .git/config
şöyle görünür. Birlikte elle yapabilirsiniz:
git push origin work1234:refs/for/work1234
Ne yapmak istiyorum düz git push
Gerrit gerektirir uzaktan kumandadaki refspec mevcut şube itmek böylece .git/config
kurmak için bir yol bulmak. Aşağıdaki git config
alanlar baktım: Burada sanki upstream
remote.<name>.push
istiyoruz - - - push.default
branch.<name>.*
Benrefs/heads/*:refs/for/*
çalıştı sadece akım Branch isterken burada amagit push
hep bu durumda tüm yerel şubeleri aktarmak istiyor
Git'i tek başına yapamazsam, refspec'leri tam olarak belirten küçük bir sarmalayıcı komut dosyası yazacağım. Bununla birlikte, Git doğal olarak doğru yere gidebilirse daha iyi olurdu. Ben /usr/local/libexec/git-core/git-submit
Bu komut dosyasını ve incelenmek üzere Gerrit için yeni kodu göndermek için bir komut var
#!/bin/sh -e
if [ -z "$1" ]; then
REMOTE=origin
else
REMOTE=$1
fi
BRANCH=`git symbolic-ref HEAD`
case $BRANCH in
refs/heads/*)
BRANCH=`basename $BRANCH`
;;
*)
echo "I can't figure out which branch you are on."
exit 1
;;
esac
git push $REMOTE HEAD:refs/for/$BRANCH
:
$ git submit
Gerrit ise
, 'hakemler/için/master' demek daha basit bir git-tek çözüm olur mu? ([İşte] (http://stackoverflow.com/questions/29664305/equivalent-of-branch-name-merge-for-git-push) benim SO sorunun basit bir sürümü olduğunu soran soru.) Bu kırardı – Pradhan