Припустимо, у мене є 5 місцевих комітетів. Я хочу перенести лише 2 з них до централізованого репо (використовуючи робочий процес у стилі SVN). Як це зробити?
Це не спрацювало:
git checkout HEAD~3 #set head to three commits ago
git push #attempt push from that head
Це закінчується натисканням на всі 5 місцевих комітів.
Я припускаю, що я міг би скинути git, щоб фактично скасувати свої комітети, після чого - git stash, а потім git push - але у мене вже створені повідомлення про фіксацію та файли організовані, і я не хочу їх повторювати.
Моє відчуття, що якийсь прапор, переданий для натискання або скидання, спрацює.
Якщо це допомагає, ось моя конфігурація git
[ramanujan:~/myrepo/.git]$cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://server/git/myrepo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
master~3
. Будь-яке посилання на бажану фіксацію "до" є однаково справедливою, наприклад,HEAD~3
абоHEAD~~~
, або конкретна SHA, або тег, який мітить, що робить.