Скажімо, у 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 feature1
4. і цілком можна звести доgit checkout -b hotfix1 master
feature1
повністю локальна, погляньтеgit rebase
.