我开始研究一个新功能,经过一段时间的编码,我决定这个功能应该在它自己的分支上.
如何将现有的未提交更改移动到新分支并重置当前更改?
我想重置当前分支,同时保留新功能的现有工作.
可能重复:
是否可以在git中预览隐藏内容?
我在这里看到你可以申请/取消申请藏匿,甚至可以从藏匿处创建一个新的分支.是否有可能只是在没有实际应用它的情况下简单地看到藏匿处内的东西?
我经常使用git stash
并git stash pop
保存和恢复工作树中的更改.昨天我的工作树上有一些变化,我已经藏起来了,然后我对工作树做了更多改动.我想回去查看昨天发生的变化,但git stash pop
似乎删除了对相关提交的所有引用.
我知道如果我使用git stash
那么.git/refs/stash包含用于创建存储的提交的引用.而.git/logs/refs/stash包含整个存储.但那些参考文献已经消失了git stash pop
.我知道提交仍然在我的存储库中,但我不知道它是什么.
有没有一种简单的方法来恢复昨天的隐藏提交引用?
请注意,这对我来说并不重要,因为我有每日备份,可以回到昨天的工作树来获取我的更改.我问,因为必须有一个更简单的方法!
可能重复:
如何仅存储已更改的多个文件中的一个文件
如何保存特定文件,将当前已修改的其他文件保存在我要保存的存储区中?
例如,如果git status给我这个:
younker % gst
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: app/controllers/cart_controller.php
# modified: app/views/cart/welcome.thtml
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
我只想藏匿app/views/cart/welcome.thtml,我该怎么做?有点像(但当然这不起作用):
git stash save welcome_cart app/views/cart/welcome.thtml
Run Code Online (Sandbox Code Playgroud) 我对文件进行了更改,加上一个新文件,并希望在切换到另一个任务时使用git stash将它们删除.但git stash本身只会隐藏对现有文件的更改; 新文件仍然存在于我的工作树中,使我未来的工作变得混乱.如何存放这个未跟踪的文件?
我总是觉得你可以通过这样做来藏匿一个名字git stash save stashname
,你可以稍后申请git stash apply stashname
.但似乎在这种情况下,所有发生的事情都stashname
将被用作藏匿描述.
有没有办法真正命名藏匿?如果没有,你会建议什么实现相同的功能?基本上我有一个小的藏匿,我会定期申请,但不想总是要寻找git stash list
它的实际藏匿号码.
上下文:我正在为master添加一个简单的功能.几分钟后,我意识到这不是那么简单,应该更好地进入一个新的分支.
这总是发生在我身上,我不知道如何切换到另一个分支并采取所有这些未经修改的更改与我离开主分支清洁.我想git stash && git stash branch new_branch
应该只是完成它,但这就是我得到的:
~/test $ git status
# On branch master
nothing to commit (working directory clean)
~/test $ echo "hello!" > testing
~/test $ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: testing
#
no changes added to commit (use "git add" and/or …
Run Code Online (Sandbox Code Playgroud) 我已经使用git stash pop
了很长一段时间.我最近发现了这个git stash apply
命令.当我尝试它时,它似乎工作相同git stash pop
.
git stash pop
和之间有什么区别git stash apply
?