Як синхронізувати вашу вилку з оригінальним сховищем Git

Ви берете участь у проекті з відкритим кодом, і ви помітили, що ваш форк не синхронізований з оригінальним сховищем. Як ви можете це виправити?

TL; версія DR

# Add a new remote upstream repository git remote add upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git # Sync your fork git fetch upstream git checkout master git merge upstream/master

Додайте нове віддалене сховище вище

Ви клонували вилку на ноутбуці і почали працювати над проблемою.

Чи знали ви, що ваша виделка - сирота? Якщо ви перелічите налаштоване віддалене сховище, ви побачите лише свою вилку як джерело:

git remote -v origin //github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin //github.com/YOUR_USERNAME/YOUR_FORK.git (push)

Ніяких ознак батьків! Де знаходиться оригінальне сховище?

Нам потрібно налаштувати цю інформацію, щоб відновити сімейні стосунки, додавши нове віддалене сховище:

git remote add upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

Ти врятував сім’ю! Тепер ви можете бачити як оригінальне сховище, так і форк:

git remote -v origin //github.com/YOUR_USERNAME/YOUR_FORK.git (fetch) origin //github.com/YOUR_USERNAME/YOUR_FORK.git (push) upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch) upstream //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

Синхронізуйте свою вилку

Зараз все налаштовано. Ви можете синхронізувати свою форку лише за допомогою 2 команд.

Переконайтеся, що ви знаходитесь у корені вашого проекту, а також у головній гілці. В іншому випадку ви можете звернутися до головного відділення:

git checkout master Switched to branch 'master'

Тепер вам потрібно отримати зміни з вихідного сховища:

git fetch upstream remote: Enumerating objects: 16, done. remote: Counting objects: 100% (16/16), done. remote: Compressing objects: 100% (7/7), done. remote: Total 7 (delta 5), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (7/7), 1.72 Kio | 160.00 Kio/s, done. From //github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY 909ef5a..0b228a8 master -> upstream/master

І об’єднайте зміни у вашій головній гілці:

git merge upstream/master Updating 909ef5a..0b228a8 Fast-forward node.js/WorkingWithItems/batch-get.js | 51 ++++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/batch-write.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------- node.js/WorkingWithItems/delete-item.js | 37 ++++++++++++++++++------------------ node.js/WorkingWithItems/get-item.js | 31 +++++++++++++++++-------------- node.js/WorkingWithItems/put-item-conditional.js | 51 +++++++++++++++++++++++++------------------------- node.js/WorkingWithItems/put-item.js | 49 ++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/transact-get.js | 51 ++++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/transact-write.js | 79 ++++++++++++++++++++++++++++++++++++++++------------------------------------- node.js/WorkingWithItems/update-item-conditional.js | 51 ++++++++++++++++++++++++++------------------------ node.js/WorkingWithItems/update-item.js | 47 ++++++++++++++++++++++++---------------------- 10 files changed, 282 insertions(+), 260 deletions(-)

Це воно! Тепер ваша вилка оновлена.

Які-небудь питання? Не соромтеся зв’язуватися зі мною у Twitter!