我昨天在一家分支机构工作,出于第二个想法,我想尝试一种完全不同的方法。这意味着要回到master恢复我的原始代码,然后从新分支开始。事实证明,我的master分支将对代码所做的所有更改都保留在该分支中。据我了解,这是因为我没有提交我的分支,对吗?
基本上,git只会在提交分支后才对分支进行“验证”,否则就好像您仍在master上工作,对吗?
假设您从已提交的master分支创建了一个分支(temp_work),并在temp_work分支中工作。现在您尚未提交temp_work,您想回到master分支,而忽略temp_work中完成的工作。
------> master
\
\-----> temp_work
^
|
Head
如果您在不提交temp_work的情况下切换回master,则所有更改也将在master分支中可见。这是因为您没有在临时分支中提交。
要切换为原始的master分支内容而不考虑temp_branch中的所有更改,您可以通过两种方式进行
解决方案1
git add .
git commit -m "temp_work"
git checkout master
git branch -D temp_work
解决方案2(我使用的那个)
git checkout temp_work
git add .
git stash
git checkout master
git stash drop