我发现TFS中的搁置/取消搁置命令非常方便并且易于使用。Git中的等效功能是什么?
这是TFS中的场景:
- 我改变了行李箱
- 我搁置:更改集保存在服务器上(带有标签),在更改之前我将源取回
- 我在后备箱里工作
- 有人可以搁置:在他的工作区中设置更改
我知道有一个命令调用cherry-pick,但我不确定工作流程以及是否适合需要。
Answers:
您所描述的内容与相似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中的服务器。
假设您正在“ master”分支上,并且决定实施功能X。您有了一个好的开始,但是您的老板告诉您,需要尽快实施功能Y。下一个立方体中的Phil将在完成功能X的同时完成志愿者X的工作,这是您的工作:
新建一个分支并切换到它:
$ git checkout -b feature-x
提交更改:
$ git add filethatyouchanged.cc
$ git commit -m 'partial implementation of feature X'
将其推送到Phil可以看到的服务器上:
$ git push origin feature-x
返回到master分支(尚未更改):
$ git checkout master
您可能还想为功能Y主动创建一个新分支:
$ git checkout -b feature-y
现在,Phil可以拉下您的特征X作品,然后从上次停下来的地方继续工作:
phil$ git fetch origin
phil$ git checkout -t origin/feature-x