Diğer cevaplar eksik görünüyordu.
Aşağıda tam olarak denedim ve iyi çalıştı.
NOT:
1. Güvenli tarafta olmak için aşağıda denemeden önce deponuzun bir kopyasını oluşturun.
Ayrıntılar:
1. Tüm geliştirme dev dalında olur
2. qa dalı sadece dev
3'ün aynı kopyasıdır. Zaman zaman, dev kodu taşınmalı / qa dalının üzerine yazılmalıdır
bu yüzden dev dalından qa dalının üzerine yazmamız gerekiyor
Bölüm 1:
Aşağıdaki komutlarla, eski qa yeni geliştiriciye güncellendi:
git checkout dev
git merge -s ours qa
git checkout qa
git merge dev
git push
Son push için otomatik yorum aşağıda verilmiştir:
// Output:
// *<MYNAME> Merge branch 'qa' into dev,*
Bu yorum ters görünüyor, çünkü yukarıdaki dizi de ters görünüyor
Bölüm 2:
Aşağıda dev beklenmeyen, yeni yerel onaylatabilirsiniz vardır, gereksiz olanları
yüzden biz atmak ve dev el değmemiş yapmak gerekir.
git checkout dev
// Output:
// Switched to branch 'dev'
// Your branch is ahead of 'origin/dev' by 15 commits.
// (use "git push" to publish your local commits)
git reset --hard origin/dev
// Now we threw away the unexpected commits
Bölüm 3:
Her şeyin beklendiği gibi olduğunu doğrulayın:
git status
// Output:
// *On branch dev
// Your branch is up-to-date with 'origin/dev'.
// nothing to commit, working tree clean*
Bu kadar.
1. eski qa artık yeni geliştirici şube kodu tarafından yazılıyor
2. yerel temiz (uzak kökeni / geliştirici el değmemiş)