git delete only last stash commit

时间:2018-02-14 15:55:38

标签: git git-stash

当我有更多的藏匿处时,有时我需要在最后一个之前放弃一两个:

> git stash
stash@{0}: WIP on 0.9.1: e59f763 UPDATE deploy script UPDATE requirements
stash@{1}: WIP on dev: c9f86fb ADD index view ADD return view ADD welcome

在这种情况下,我想放弃@{0}。如果我git stash pop我遇到了必须手动解决的合并冲突,可能不仅仅是一次,以摆脱隐藏的提交。

通常,我会创建另一个分支:

git checkout -b temp  
git stash pop
# solve merge-conflicts
git checkout branch_for_stash@{1}
git stash pop

是否有任何(git)命令删除最后一次甚至是任何存储提交?

1 个答案:

答案 0 :(得分:4)

问题似乎已在评论中得到解答。供将来参考,请参阅git stash drop的相应文档:

  

从存储条目列表中删除单个存储条目。当没有< stash>给出,它删除了最新的。即存储@ {0},否则< stash>必须是stash @ {< revision>}形式的有效存储日志引用。

因此,只删除存储条目$ git stash drop stash@{1} ,命令将如下所示:

stash@{1}

请注意,引用中的数字是从列表顶部开始的计数,因此连续两次删除stash@{1}会删除stash@{2},然后删除之前的git stash apply。< / p>

这同样适用于git stash pop$ git stash apply stash@{1} $ git stash pop stash@{1} 命令,即:

public partial class Driver 
{
    public int ID { get; set; }
    //....

    #region Vistracks Required Fields

    public virtual ProblemSyncToVistracksDriver ProblemSyncToVistracksDriver { get; set; }

    #endregion
}


public partial class ProblemSyncToVistracksDriver
{
    [Key, ForeignKey("Driver")]
    public int DriverId { get; set; }
    public virtual Driver Driver { get; set; }

    public int? ResponseCode { get; set; }
    public string Message { get; set; }
    public string Description { get; set; }
    public bool IsServerError { get; set; }
    public DateTime DateAdded { get; set; }
}


modelBuilder.Entity<ProblemSyncToVistracksDriver>()
    .HasRequired(s => s.Driver)
    .WithOptional(ad => ad.ProblemSyncToVistracksDriver)
    .WillCascadeOnDelete(false);