Я шукав довкола і не знайшов відповіді на це питання.
У мене є додаток на Heroku. З моєї локальної машини я зазвичай реалізую і просто:
git add .
git commit -m "whatever change, I know I can add and commit at the same time..."
git push <the-heroku-repo>
Потім він піднімається вгору і головна гілка в додатку Heroku оновлюється. Все йде нормально.
Тепер. Я хочу мати ще одну машину, яка автоматично зробить потяг з репо Heroku і оновить себе.
Тож я роблю це з:
git clone <the-heroku-repo>
Це додає мені додаток, і я можу побачити конфігурацію git із цим:
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@heroku.com:theapp.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
Щоб оновити це нове репо, я можу зробити лише потяг:
git pull origin
Або я можу отримати та об'єднати:
git fetch origin
git merge origin/master
МОЕ ПИТАННЯ
Між вищезазначеним результатом і злиттям я можу перевірити, які зміни виконуючи:
git log -p master..origin/master
Чи є спосіб знайти відмінності міжмісцеве головне відділення та остання версія у віддаленому репорту Heroku без отримання раніше? Просто порівняйте локальний та віддалений та перегляньте зміни. Я просто не можу знайти належний шлях.
Дякую.
Відповіді:
14 за відповідь № 1Хоча ви можете отримати деяку підсумкову інформацію про філії в origin
сховище з використанням:
git remote show origin
... вам потрібно отримати гілки з origin
у своє сховище якось, щоб порівняти їх. Це те, що git fetch
робить. Коли ти біжиш git fetch origin
, воно за замовчуванням оновить лише так звані "відділення дистанційного відстеження", такі як origin/master
. Вони просто зберігають, де розташована відповідна філія origin
востаннє ви завітали. Усі ваші місцеві відділення, над якими ви працювали, не впливають на це git fetch
. Отже, це безпечно робити:
git fetch origin
git log -p master..origin/master
... і тоді, якщо ви "задоволені цим", ви можете злитися з ним або перезавантажитись origin/master
.
Я б закликав вас не турбуватися про ресурси (або дисковий простір, або пропускну здатність), що беруть участь у програмі git fetch origin
командування. git ефективно надсилає лише ті об’єкти, які необхідні для завершення гілок віддаленого відстеження, що оновлюються, і, якщо у вас незвичайно великі файли, що зберігаються з вихідним кодом, це не повинно значно змінити. Крім того, це "s часто корисно мати повну історію гілок з іншого сховища, навіть якщо ви не плануєте їх використовувати, наприклад, щоб ви могли вивчити цю історію розвитку.