[英]Git - Save Work in Progress — Changes Missing After Branching
我试图在实际推送之前使用Git保存我的更改。 如果我的系统崩溃,我就不会失去工作。
我查看了git stash
,这看起来不错,但看起来只是本地的,所以这没有用。
我读到我应该创建一个新的分支并推动它。 嗯,这就是我在下面做的,当我回到主分支时,我的工作文件不再出现了。
我有两个问题:
我做错了什么?
在您准备推送之前,是否有更好的方法来保存更改?
我的尝试:
//在master中,我正在进行工作,创建并移动到新分支
git checkout -b branch1
// Stage,然后推送新分支中的更改
git add .
git commit -m "committing changes from new local branch"
git push
致命的:当前的分支branch1没有上游分支。
//创建远程分支并将新的本地分支推送到它(现在在服务器上更改)
git push --set-upstream origin branch1
//回到主人去工作
git checkout master
//呃哦,改变没有出现在主人身上? 他们去哪儿了?
git status
在分支主数据上您的分支是最新的'origin / master'。 什么都没有,工作树干净
你没有做错任何事。 您在Git阶段的更改已在branch1
上branch1
并推送到服务器。 因此,在您完成提交后,舞台被清理干净。
要将branch1
的更改branch1
为master
,您可以尝试将branch1
合并到master
,例如
git checkout master
git merge branch1
我发现你直接在master
分支上工作很奇怪。 更典型的是,您已经在处理某个功能分支branch1
,然后希望稍后将整个功能合并回master
。 我提到这种情况,因为它可以让操作更顺畅。 你可以在branch1
上进行临时提交,然后推送。 当你重返工作岗位时,你可以继续工作,然后通过以下方式修改提交:
git commit --amend
现在,您将在您的功能分支上使用一个提交,其中包含您打算执行的所有工作。
master
是默认分支的名称。 您创建了一个基于master
的新分支,并在那里提交了您的更改。 该分支现在包含master
中的所有提交以及新提交。 然后,您将新分支推送到远程。 到目前为止都很好。
然后你切换回master
。 为什么? 这不包含您正在处理的内容。 您的新分支包含您正在处理的内容。 继续在那个分支上工作。 完成工作的那部分后,将其合并回master
。
另外:不要再考虑使用Git作为“保存”了。 这是一种记录和传递代码库随时间变化的方法。 这不是一种奇特的储蓄方式。 这是初学者常犯的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.