Aşağıdakileri yapabilmek istiyorum:
Başka bir (uzak veya yerel) dalı temel alarak yerel bir dal oluşturun (git branch
veya git checkout -b
aracılığıyla)
Yerel şubeyi itin
uzak depoya aktarın (yayınlayın), ancak bunu
izlenebilir olduğundan git pull
ve git push
hemen çalışacaktır.
Bunu nasıl yapacağım?
Git 1.7'deki `--set-upstream'i biliyorum, ancak bu oluşturma sonrası bir eylemdir. Dalı uzak depoya iterken benzer bir değişiklik yapmanın bir yolunu bulmak istiyorum.
git push -unun kullanıma sunulmasından önce, istediğinizi elde etmek için
git push` seçeneği yoktu. Yeni yapılandırma ifadeleri eklemek zorundaydınız.
kullanarak yeni bir şube oluşturursanız:
$ git checkout -b branchB
$ git push origin branchB:branchB
Doğrudan .git/config
dosyasını düzenlemekten kaçınmak için git config
komutunu kullanabilirsiniz.
$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB
Ya da .git/config
dosyasını manuel olarak düzenleyerek izleme bilgilerini bu dala aktarabilirsiniz.
[branch "branchB"]
remote = origin
merge = refs/heads/branchB
gibi bir projeyi zaten klonladığınızı varsayıyorum:
git clone http://github.com/myproject.git
Ardından yerel kopyanızda yeni bir dal oluşturun ve kontrol edin:
git checkout -b <newbranch>
Sunucunuzda bir "git bare --init" yaptığınızı ve myapp.git dosyasını oluşturduğunuzu varsayarsak, şunları yapmalısınız:
git remote add origin ssh://example.com/var/git/myapp.git
git push origin master
Bundan sonra, kullanıcılar şunları yapabilmelidir
git clone http://example.com/var/git/myapp.git
NOT: Sunucunuzun hazır ve çalışır durumda olduğunu varsayıyorum. Eğer çalışmıyorsa, çalışmayacaktır. İyi bir nasıl yapılır burada.
Uzak bir dal ekleyin:
git push origin master:new_feature_name
Her şeyin yolunda olup olmadığını kontrol edin (kökeni getirin ve uzak dalları listeleyin):
git fetch origin
git branch -r
Yerel bir şube oluşturun ve uzak şubeyi izleyin:
git checkout -tb new_feature_name origin/new_feature_name
Her şeyi güncelleyin:
git pull
edit Güncel değil, sadece git push -u origin $BRANCHNAME
kullanın
William's miscellaneous Git tools](http://git-wt-commit.rubyforge.org/) (gitorious repo ve clone) git publish-branch
kullanın.
Tamam, Ruby yok, yani - güvenlik önlemlerini göz ardı ederek! - betiğin son üç satırını alın ve git-publish-branch
adında bir bash betiği oluşturun:
#!/bin/bash
REMOTE=$1 # Rewrite this to make it optional...
BRANCH=$2
# Uncomment the following line to create BRANCH locally first
#git checkout -b ${BRANCH}
git push ${ORIGIN} ${BRANCH}:refs/heads/${BRANCH} &&
git config branch.${BRANCH}.remote ${REMOTE} &&
git config branch.${BRANCH}.merge refs/heads/${BRANCH}
Ardından git-publish-branch REMOTENAME BRANCHNAME
komutunu çalıştırın, burada REMOTENAME genellikle orijindir (komut dosyasını orijini varsayılan olarak alacak şekilde değiştirebilirsiniz, vb...)