git 切换分支后,如何恢复至原来干净的工作区?

2020-01-13 11:13:55 +08:00
 xiaoming1992
// branch: master
content-of-master

// branch: issue-53
content-of-master-and-addition-of-issue-53

现在我从 issue-53 切换回 master, 想回到原来干净的工作区( working directory ), 是执行 reset 吗?

4596 次点击
所在节点    git
18 条回复
wqshare
2020-01-13 11:19:38 +08:00
git reset --hard HEAD
sbw
2020-01-13 11:20:22 +08:00
commit 到第二个分支然后 checkout 回去,或者直接 checkout 回去然后 checkout -- . 撤销修改或者 stash push 保存临时修改再 checkout 回去或者 checkout 回去再 reset 再 checkout -- .
fzhyzamt
2020-01-13 11:22:00 +08:00
是在 issue-53 写的代码,没有提交,然后切换到 master 分支吗?
如果不想要这些代码,git reset --hard HEAD,注意这是个无法回滚的操作,谨慎执行
或者暂存起来 git stash save
wqshare
2020-01-13 11:22:20 +08:00
上面是重置已加入版本管理的文件,对于没有加入的文件,比如一些临时文件等,再加上:git clean -d -x -f (加上-n 可以预览)
xiaoming1992
2020-01-13 11:40:07 +08:00
@fzhyzamt 已经提交了,但是切换回 master 分支后,希望在工作区移除这些新增的内容,让 master 的工作区回复到原来的状态
msg7086
2020-01-13 11:43:33 +08:00
你去其他分支的时候,原分支管理的文件本来就会被替换 / 删除掉,不需要手动移除。
只有未受管理的文件才会留下。
zyq2280539
2020-01-13 11:46:52 +08:00
git pull --rebase
git reset --hard
git clean -d -f
xiaoming1992
2020-01-13 11:48:16 +08:00
@msg7086 我菜 b 了,原来只要添加到提交就行了,我原来是仅一部分提交了,还有一部分没提交,我只看到没提交部分还存在。。。

0202 年第一次用这些功能的我好像有点捞。。。
KuroNekoFan
2020-01-13 12:10:52 +08:00
我看了下你的问题,多数都在 StackOverflow 上有现成的回答
dswyzx
2020-01-13 12:33:44 +08:00
git stash 贮藏了解一下.
将本地不想提交的或者暂时搞一半的暂存起来

git reset 是不能恢复的.不要轻易使用
xiaoming1992
2020-01-13 13:56:05 +08:00
@KuroNekoFan #9 我看了下你的问题,多数都在 StackOverflow 上有现成的回答
我创建的主题一共有 40 个左右,我感觉除了本问题和 [浏览器是怎么处理.html 文件的缓存的] ,我的其他问题不怎么符合 [在 StackOverflow 上有现成的回答] 吧?
hlx
2020-01-13 14:52:33 +08:00
只要是 commit 过的都不会丢嘎, 所以随便 reset --hard, 不行 git reflog 找回嘎
hlx
2020-01-13 14:55:42 +08:00
hlx
2020-01-13 14:59:25 +08:00
@fzhyzamt
@dswyzx
可以撤销, 可以撤销, git reflog 了解一下, 只要是 commit 过的都可以找回,
廖大大的 Git 教程搞一波
no1xsyzy
2020-01-13 15:25:34 +08:00
@hlx reflog 不保证时效啊
hlx
2020-01-13 15:41:18 +08:00
@no1xsyzy 好吧, 长见识了, 我这个野生程序员又...
SjwNo1
2020-01-13 15:48:08 +08:00
切回到 master 貌似不会影响
SoloCompany
2020-01-13 21:08:32 +08:00
一般 moving HEAD 不用做任何事情
只有两个 HEAD 的 gitignore 不一致的时候可能会导致切分支后不干净
那么如果那些遗留的内容确认是不重要的话, 可以使用 clean -f -d 清理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX