繁体   English   中英

Git - 保存正在进行的工作 - 分支后缺少更改

[英]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阶段的更改已在branch1branch1并推送到服务器。 因此,在您完成提交后,舞台被清理干净。

要将branch1的更改branch1master ,您可以尝试将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM