Я работал над своим локальным репозиторием и несколько раз отправлял данные на сервер git, в то время как сервер, на котором я развертываю свою работу, все еще находится позади всех этих коммитов.
Вкратце, ситуация такая:
local: commit n+5
git server: commit n+5
dev server: commit n
Теперь я хочу вытащить на сервер разработки только коммит с номером n+5 (не включая коммиты n+1, n+2, n+3 и n+4).
Я погуглил и нашел несколько решений, в том числе этот на Stackoverflow.
Я попробовал git reset --hard <commit>
, но это не сработало , я получил эту ошибку:
git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
git reset --hard 77de3a5
fatal: ambiguous argument '77de3a5': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Я хотел попробовать другое предложенное решение (используя git fetch
и git merge
), но я запутался, когда это было сказано
Примечание: git merge получит все изменения и их происхождение, так что это работает, если это самая старая не объединенная фиксация.
Я боюсь, что этот подход будет включать (вытягивать/сливать) все зафиксировать n+5.
Есть ли способ вытащить только один коммит (не включая предыдущие коммиты)?
PS: Я знаю, что самый чистый способ — это использовать разные ветки, но что делать, когда вы получаете немного беспорядочный!
git cherry-pick
.git help cherry-pick
- person eftshift0   schedule 15.11.2019git cherry-pick -n 77de3a5
, тоже не сработало, получилось:fatal: bad revision '77de3a5'
- person singrium   schedule 15.11.2019git show --summary 77de3a5
? - person eftshift0   schedule 15.11.2019git fetch --all
на сервере развертывания, чтобы получить новую информацию с удаленного сервера. Затем вы можете повторить попытку выбора вишни. - person Daniel Farrell   schedule 15.11.2019fatal: ambiguous argument '77de3a5': unknown revision or path not in the working tree.
- person singrium   schedule 15.11.2019