Я нашел, что отложить/неотложить команды в TFS очень удобны и очень просты использовать. Каков эквивалент в Мерзавце?
вот сценарий в TFS:
Я знаю, что существует избирательный подход вызова команды, но я "m не уверенный в рабочем процессе и если он соответствует потребности.
То, что вы описываете, похоже на git stash
, за исключением того, что с git у вас есть собственный репозиторий (а не только один на сервере), только вы можете вернуть это изменение.
Общая идея такова:
# do some stuff
vim foo/bar.c
# stash away your changes
git stash
# do some other things...
# retrieve your changes
git stash pop
Если вы хотите, чтобы кто-то еще имел доступ к этому набору изменений, вы должны вместо этого зафиксировать его в рабочей ветке:
# make yourself a branch
git checkout -b temp-featureA
# commit to it
git add foo/bar.c; git commit
# now you push this branch (or they could just fetch straight from you)
git push origin temp-featureA
# Now, in someone else's repo:
# Fetch updates
git fetch origin
# Make a branch tracking the remote branch
git branch temp-featureA origin/temp-featureA
# Either check it out:
git checkout temp-featureA
# or cherry-pick it, to apply the changes somewhere else:
git cherry-pick temp-featureA
# or, if it's multiple commits, rebase it!
git rebase --onto my-branch start-of-featureA temp-featureA
То, что вы хотите сделать, достигается простым старым ветвлением в git.
От хороший ответ StackOverflow от JaredPar :
Стеллажи - это способ сохранить все изменения в вашем ящике без регистрации. Изменения сохраняются на сервере .
Это аналогично фиксации в ветке и отправке ее на сервер в git.
Предположим, вы работаете над «главной» веткой и решили реализовать функцию X. У вас есть хороший старт, но затем ваш босс говорит вам, что функция Y должна быть реализована как можно быстрее. Фил в следующем кубе над добровольцами, чтобы завершить функцию X, в то время как вы выполняете функцию Y. Вот что вы делаете:
Создайте новую ветку и переключитесь на нее:
$ git checkout -b feature-x
Зафиксируйте свои изменения:
$ git add filethatyouchanged.cc
$ git commit -m 'partial implementation of feature X'
Отправьте ее на сервер, который Фил может увидеть:
$ git push origin feature-x
Вернитесь к главной ветке (которая не изменилась):
$ git checkout master
Вы также можете заранее создать новую ветку для функции Y:
$ git checkout -b feature-y
Фил теперь может отключить вашу работу с функцией X и продолжить с того места, где вы остановились:
phil$ git fetch origin
phil$ git checkout -t origin/feature-x
git stash немного похож, за исключением того, что он ограничен вашим рабочим деревом.
В DVCS, чтобы добиться такого рабочего процесса, вам необходимо:
Другой способ - позволить другому разработчику получить вашу ветку (где вы зафиксировали этот специальный набор изменений) и выбрать ее , но это не рекомендуется для cherry -выбранные коммиты трудно отслеживать .