C++ git分支实验

C++ git分支实验,c++,git,branch,C++,Git,Branch,我一直在为一个项目工作。今天我在试验windows特有的wchar,从早上开始我需要修改很多代码,结果弄得一团糟。我可以清除后者,但现在我需要做一些关于最后工作提交的主流作品。但我不想失去这份工作。因此,我如何将此工作保留在某个分支中以备将来使用,并将我的工作区恢复到上次提交状态?您可以创建一个新分支并将更改提交给它: git checkout -b topic/ugly-mess git commit -a -m 'Checkpointing mess.' 然后返回到具有最后一个工作提交的主

我一直在为一个项目工作。今天我在试验windows特有的
wchar
,从早上开始我需要修改很多代码,结果弄得一团糟。我可以清除后者,但现在我需要做一些关于最后工作提交的主流作品。但我不想失去这份工作。因此,我如何将此工作保留在某个分支中以备将来使用,并将我的工作区恢复到上次提交状态?

您可以创建一个新分支并将更改提交给它:

git checkout -b topic/ugly-mess
git commit -a -m 'Checkpointing mess.'
然后返回到具有最后一个工作提交的主流分支:

git checkout master
如果您想向上游发布“本地混乱”,请推动分支:

git push origin topic/ugly-mess

你甚至不需要树枝。如果使用
git stash
,git将隐藏(存储)当前的“脏”工作区,并将您返回到干净的工作区。如果您愿意,您可以
稍后应用
隐藏的更改。

只要您没有提交任何这项工作,您就可以随时进行实验


但是您已经将其描述为实验性的,所以另一个选项,可能是更好的选项,是将此工作保留在自己的分支中,例如,
git checkout-b wcharexperience
,将工作提交到这个新分支中,然后签出您的主分支。

只需创建一个新分支即可

git branch -b wchar_migration
并将您的更改提交到其中

git commit -am "wchar ..."
那就回去工作吧

git checkout master
如果以后您想包含在master上所做的修改,只需在其上重新设置基础即可

git co wchar_migration
git rebase master

您是否已经提交了任何更改?没有人还在等待和思考我认为的
隐藏
可以在这里工作。@juanchopanza:Neel希望他的工作在一个单独的分支中,
隐藏
只保存“隐藏堆栈”上的更改。是的,您可以。不过,这些藏品都是本地的,而且应该是短期的,所以我不明白你为什么要这么做。查看git隐藏手册页面中的所有选项。我不需要在提交后和签出主机前推送吗?如果您希望您的“本地混乱”在上游可用,您只需要推送。(我相应地修改了答案。)是的,我希望这堆乱七八糟的东西可以在未来的上游使用,这样我以后就可以玩了。签出master后我需要推它吗?我是否需要明确指定分支的名称?无论推送如何,分支将来都将可用。您可以通过
git checkout topic/ught mess
随时查看它。将它推到上游(i)使其他用户可以使用它,并且(ii)在本地磁盘出现故障时备份它。是的,如果您当前在master中并且希望推送另一个分支,则需要指定该分支。但是,您可以在推送时避免指定分支名称。但是如果我不推送,它将仅在本地可用?