相关疑难解决方法(0)

如何从"git stash save --all"中恢复?

我想隐藏未跟踪的文件,但我继续传递错​​误的选项.对我来说这听起来是对的:

git stash save [-a|--all]
Run Code Online (Sandbox Code Playgroud)

但实际上这也隐藏了文件.正确的是:

git stash save [-u|--include-untracked]
Run Code Online (Sandbox Code Playgroud)

当我运行git stash save -a并尝试git stash pop它时,我得到所有被忽略文件的无数错误:

path/to/file1.ext already exists, no checkout
path/to/file1.ext already exists, no checkout
path/to/file1.ext already exists, no checkout
...
Could not restore untracked files from stash
Run Code Online (Sandbox Code Playgroud)

所以命令失败了.

如何恢复跟踪和未跟踪的更改?git reflog不存储存储命令.

git git-stash

13
推荐指数
1
解决办法
3905
查看次数

获取 git stash 父提交

有没有办法检索最初创建存储的提交?

使用默认命令创建存储时,git stash原始提交保存在存储消息中,因此通常如下所示:

stash@{0}: WIP on master: abc123 This is the message of some commit.
Run Code Online (Sandbox Code Playgroud)

但是,如果git stash save 'a stash message'使用,则提交不会出现在存储列表中:

stash@{1}: On master: my own message
Run Code Online (Sandbox Code Playgroud)

那么如何才能找回呢?

git git-stash

5
推荐指数
1
解决办法
806
查看次数

我怎样才能发现我隐藏的 git commit 哈希?

我意识到我的问题与How to list the parent commit of a stash in `git stash list`Get git stash parent commit非常相似,但那些有太多令人困惑、不同的回答,我在问我自己的问题。

让我们假设如果我跑git stash list,我看到stash@{0}: On featureX: someMessageHere

当我进行存储时,我如何才能显示我正在工作的提交的哈希值(我想这可以被视为父提交)?

我看到了很多不同的答案,我很困惑这些答案是什么,它们有什么不同,以及哪个是我问题的答案:

  • git show stash@{1}^
  • git log -1 commitish^
  • git log -1 stash@{0}^
  • git log -g --no-walk --parents refs/stash
  • git for-each-ref --format='%(refname:short)' --points-at $(git rev-parse refs/stash~1) refs/heads
git log -g --format="%gd %H" refs/stash |
while read name hash; do
    printf "%s %s " $name $(git rev-parse --short $name^)
    git log …
Run Code Online (Sandbox Code Playgroud)

git

4
推荐指数
2
解决办法
794
查看次数

标签 统计

git ×3

git-stash ×2