Bal*_*ier 20 git github git-stash git-commit
我在我的仓库中更改了一些文件,但不希望它们被公开或创建任何临时分支来存储它们.我只是想在某个地方保存这些变化.那么哪个命令更好:
git stash save "save message"
Run Code Online (Sandbox Code Playgroud)
要么
git commit -am "save message"
Run Code Online (Sandbox Code Playgroud)
?
如果我使用git commit,是否所有本地提交都将由一个git push命令公开推送?如果我只是想在其中推送一个特定的提交怎么办?
Ozn*_*256 15
在推送时,您总是推送一个特定的提交(通常是当前签出的分支的提示).但是,由于提交的哈希部分由它所基于的提交(其父提交)组成,因此您还必须推送所有父提交.通过推送父提交,您还必须推送其父提交等等.因此,您只能推送特定提交的整个历史记录.
如果你创建一个提交只是为了存储而不是为了推送,你需要确保你永远不会推送该提交,也不需要任何基于该提交的提交.要做到这一点,在完成基于临时提交的工作之后,您需要将临时提交压缩到您创建的新提交中以推送它.
换句话说,是的,可以使用临时私有存储的提交.但是,使用隐藏功能要容易得多.事实上,该功能做出了这个非常使用情况.
我个人更喜欢直接去私人(本地)分支机构,但隐藏工作。请注意有关 stashes 的两件事:
refs/tags/tag-foo;一个分支的形式为refs/tags/branch-foo;一个标记为 stash 的提交被标记为refs/stash。当然,分支标签也有“在你添加提交时自动移动”功能,但如果你从不添加更多提交在那里,它们从不移动,因此它们也能很好地保存单个提交。)refs/stash不会,但您可以使用配置条目更改此设置——因此堆叠存储提交也可以“过期”(同时引用日志条目会过期) . (更准确地说,它们“变得可收藏”,但如果它们消失了,这种区别也无济于事。:-))stash 的目的是为了短期保存一些东西。如果你很晚才回到仓库并发现一堆隐藏的东西,都命名为“分支上的 WIP”,那么试图找出它们是没有乐趣的。
其他功能/错误:-)stash提供的是:
git stash branch让你事后改变主意,把一个藏匿处变成一个分支。所以,如果“短期”成为一个问题(你今天下午要解决它,但现在它已经被推迟了至少一个月)你毕竟可以把藏匿处变成一个分支。git stash apply [--index]将尽最大努力“重新制作”当前分支中应用的更改。随着--index它会尝试恢复双方上演独立不分级的变化。(不过,在某些情况下这是不可能的。)git stash pop自动为您丢弃存储引用。不幸的是,即使您打算使用git stash pop --index并忽略该--index部分,它也会这样做。如果您使用pop. 如果您使用apply, 之后drop一旦您确定一切都按您想要的方式进行,您就可以避免这个问题。请注意,这git stash branch意味着--index:新创建的分支会将暂存和未暂存的更改恢复到您执行git stash. (分公司将分出从提交你的时候,你做了就git stash(也)提交更改git add如果需要更多的-ing,或作为两个单独提交,或其他),并继续执行,如果你犯了一个私有分支首先。
1堆栈的可过期部分由输出中除stash@{0},以外的所有存储组成git stash list。
| 归档时间: |
|
| 查看次数: |
31223 次 |
| 最近记录: |