Я зробив кілька комітетів у різних файлах, але поки що я хотів би перенести до мого віддаленого сховища лише певну комісію.
Це можливо?
Я зробив кілька комітетів у різних файлах, але поки що я хотів би перенести до мого віддаленого сховища лише певну комісію.
Це можливо?
Відповіді:
Для того, щоб підштовхнути вгору через даність здійснювала, ви можете написати:
git push <remotename> <commit SHA>:<remotebranchname>
надано <remotebranchname>
вже існує на пульті. (Якщо цього немає, ви можете використовувати його git push <remotename> <commit SHA>:refs/heads/<remotebranchname>
для автоматичного створення.)
Якщо ви хочете натиснути на комісію, не натискаючи на попередні зобов’язання, спершу слід скористатися, git rebase -i
щоб повторно замовити коміти.
git push <remotename> <commit SHA>:<remotebranchname>
працює. хитрість полягає в тому, щоб поєднати його з тим, git rebase -i
щоб перемістити
git push <remotename> <commit SHA>:refs/heads/<new remote branch name>
. Після цього натисніть так, як описується відповідь.
git push origin HEAD~1:master
.
-f
прапор.
Інші відповіді відсутні у описах переупорядкування.
git push <remotename> <commit SHA>:<remotebranchname>
підштовхне одну комісію, але ця комісія повинна бути СТАРІШОЮ з ваших локальних, не наштовхуваних, зобов’язань, не плутати їх з першими, першими чи підказками, які, на мою думку, є неоднозначними описами. Здійснювати зобов’язання слід за найстаріший з ваших зобов’язань, тобто найдалі від останнього. Якщо це не найстаріша фіксація, то всі коміти від вашої найстарішої, локальної, не натиснутої SHA до вказаної SHA будуть висунуті. Для впорядкування комісій використовуйте:
git rebase -i HEAD~xxx
Після упорядкування комісії ви можете спокійно перенести його у віддалений сховище.
Підводячи підсумки, я використовував
git rebase -i HEAD~<number of commits to SHA>
git push origin <post-rebase SHA>:master
щоб підштовхнути одну комісію до моєї віддаленої ведучої гілки.
Список літератури:
Дивись також:
Я б запропонував використовувати git rebase -i
; перемістіть зобов’язання, яке ви хочете натиснути, на верхню частину укладених вами зобов’язань. Потім скористайтеся, git log
щоб отримати SHA скасованого комітету, перевірте його та натисніть на нього. Перезавантаження забезпечить, що всі ваші інші зобов’язання тепер є дітьми того, кого ви натиснули, тому майбутні поштовхи також спрацюють нормально.
git log
крок?
Вишня вибору найкраще працює порівняно з усіма іншими методами, одночасно підштовхуючи певну прихильність.
Спосіб зробити це:
Створіть нову філію -
git branch <new-branch>
Оновіть свою нову філію своїм початковим відділенням -
git fetch
git rebase
Ці дії гарантують, що у вас точно такі самі речі, як у вашого походження.
Вишні виберіть те, sha id
що ви хочете натиснути -
git cherry-pick <sha id of the commit>
Ви можете отримати sha id
, запустивши
git log
Додайте його до свого походження -
git push
Біжіть, gitk
щоб все виглядало так, як ви хотіли.
git rebase -i
буде ідеальним рішенням, як пропонується у вищезазначених рішеннях. Вишневий вибір потрібно використовувати лише тоді, коли ви хочете дублювати коміти.
Я вважаю, що вам доведеться "повернути назад" до цього перекладу, а потім підштовхнути його. Або ви можете cherry-pick
скористатися новою гілкою та натиснути її на гілку у віддаленому сховищі. Щось на зразок:
git branch onecommit
git checkout onecommit
git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544 # From the other branch
git push origin {branch}
cherry-pick
зобов'язання.
Ви також можете в іншому каталозі: