Скажімо, у Git у нас є така ситуація:
Створене сховище:
mkdir GitTest2 cd GitTest2 git initДеякі зміни в майстрі відбуваються і приймаються:
echo "On Master" > file git commit -a -m "Initial commit"Feature1 відгалужений майстер, і виконується деяка робота:
git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1"Тим часом у майстер-коді виявлено помилку і встановлюється виправлення-гілка:
git checkout master git branch hotfix1 git checkout hotfix1Помилка виправляється у гілці виправлень та об’єднується назад у головний майстер (можливо після перегляду запиту / коду):
echo "Bugfix" > bugfixFile git commit -a -m "Bugfix Commit" git checkout master git merge --no-ff hotfix1Розвиток на функцію1 триває:
git checkout feature1
Скажіть, мені потрібне виправлення в моїй гілці функцій, можливо, тому, що там також виникає помилка. Як я можу досягти цього, не дублюючи комісії у своїй функції гілок?
Я хочу не допустити отримання двох нових комітетів у моїй гілці функцій, які не мають відношення до реалізації функції. Особливо це здається важливим для мене, якщо я використовую запити на витяг: Усі ці комітети також будуть включені до запиту на витяг та мають бути переглянуті, хоча це вже було зроблено (оскільки виправлення вже є в головному).
Я не можу зробити git merge master --ff-only: "фатально: Неможливо перемотати вперед, перериваючи життя", але я не впевнений, чи це мені допомогло.
git rebaseмені здається чорною магією ....
git branch feature1і їх git checkout feature1можна об’єднати в git checkout -b feature14. і цілком можна звести доgit checkout -b hotfix1 master
feature1повністю локальна, погляньтеgit rebase.