相关疑难解决方法(0)

git stash并申请

我是git的新手,并不清楚stashing是如何工作的.

假设我正在分支主服务器上工作并尝试git pull接收错误,即我的本地更改将被覆盖并需要被隐藏或提交.如果我没有上演我的任何更改并运行git stash,那么做一个git pull并成功更新,当我发生了什么git stash apply

一般来说,如果其他人修改文件并且我运行git pull,那么当我发生时会发生什么run git stash apply?它是否会覆盖刚刚更新的文件,无论它们是否在我存储时被暂存?它是否会覆盖我刚刚更新过的每个文件,git pull以及被隐藏的文件?

git git-stash git-pull

31
推荐指数
2
解决办法
2万
查看次数

如何在预提交钩子中正确git stash/pop以获得一个干净的工作树进行测试?

我正在尝试使用一系列单元测试进行预提交钩子,我想确保我的工作目录是干净的.编译需要很长时间,所以我希望尽可能利用重用编译的二进制文件.我的脚本遵循我在网上看到的例子:

# Stash changes
git stash -q --keep-index

# Run tests
...

# Restore changes
git stash pop -q
Run Code Online (Sandbox Code Playgroud)

这会导致问题.这是repro:

  1. 添加// Step 1a.java
  2. git add .
  3. 添加// Step 2a.java
  4. git commit
    1. git stash -q --keep-index #存储更改
    2. 运行测试
    3. git stash pop -q #恢复更改

此时我遇到了问题.该git stash pop -q显然有冲突,a.java我有

// Step 1
<<<<<<< Updated upstream
=======
// Step 2
>>>>>>> Stashed changes
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个流畅干净?

git git-stash githooks

24
推荐指数
1
解决办法
5577
查看次数

git stash报告:''不是藏匿参考

不太确定发生了什么,但是git stash似乎处于一个不好的地方.

% git stash list
stash@{0}: filter-branch: rewrite
stash@{1}: filter-branch: rewrite
stash@{2}: On mysolr: start mysolr stuff
Run Code Online (Sandbox Code Playgroud)

没关系,并且git show stash@{0}工作正常.但:

% git stash drop
'' is not a stash reference
% git stash pop
'' is not a stash reference
% git stash drop stash@{0}
'stash@{0}' is not a stash reference
Run Code Online (Sandbox Code Playgroud)

我过去常常使用git stash而不是碰到这个.我最近重写了历史记录,以便在发布到github之前从历史记录中删除文件.我跑的命令是

git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch FILENAME' \
  --prune-empty --tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)

任何想法如何修复藏匿?

git git-stash

24
推荐指数
2
解决办法
6421
查看次数

如何查看存储ID旁边的存储日期/时间戳?

使用git stash list显示带有ID的存储列表.使用git stash list --date=localgit stash list --date=relative给我他们的时间,但我不知道他们的相应ID是什么.

我想在某个时间获得藏匿.

git git-stash

24
推荐指数
2
解决办法
5331
查看次数

列出git存储库中的修改文件名

我可以在没有内容的情况下在藏匿处列出修改过的文件的名称吗?

在搜索时,我只发现打印整个差异的人,无法仅查看文件名.

git git-stash

17
推荐指数
1
解决办法
7912
查看次数

为什么存储表示为2次提交?

当存储一些更改时,Git会创建两个单独的提交,"分支上的WIP"和"分支上的索引":

$ git log --graph --all 

*   commit 98aac13303ca086580c1ec9ccba5fe26c2a8ef3c
|\  Merge: 7d99786 82c5c76
| | Author: Tieme <my@email.com>
| | Date:   Wed Nov 19 09:58:35 2014 +0100
| |
| |     WIP on development: 7d99786 Last real commit
| |
| * commit 82c5c763357c401135675a39bfabf9b7f6805815
|/  Author: Tieme <my@email.com>
|   Date:   Wed Nov 19 09:58:35 2014 +0100
|
|       index on development: 7d99786 Last real commit
|
|
| * commit 7d9978637a0e1ef92f2432189bdebf2317f0b2f0
| Author: Tieme <my@email.com>
| Date:   Tue Nov 18 …
Run Code Online (Sandbox Code Playgroud)

git git-stash git-log

16
推荐指数
1
解决办法
693
查看次数

Git stash用未跟踪文件修补

如何使用未跟踪的文件进行Git存储,将其推送到补丁并在另一台计算机中恢复.

git stash save -u feature
git stash show -p > patch
git apply patch
Run Code Online (Sandbox Code Playgroud)

但路径没有未跟踪文件

git

11
推荐指数
1
解决办法
4745
查看次数

如何在`git stash list`中列出存储的父提交

当我生成一个存储时git,有一个"父"(我隐藏我的更改之前的最后一次提交).

当我git stash用来存储我的更改时,该父提交的ID将添加到描述我的存储的消息中.打电话git stash list可以显示:

stash@{0}: WIP on master: c09a3fc second commit
stash@{1}: WIP on master: 063b893 first commit
stash@{2}: WIP on master: 063b893 first commit
Run Code Online (Sandbox Code Playgroud)

但是当我运行git stash save "My own message"父提交的ID时没有添加(git stash list):

stash@{0}: On master: My own message
stash@{1}: WIP on master: c09a3fc second commit
stash@{2}: WIP on master: 063b893 first commit
stash@{3}: WIP on master: 063b893 first commit
Run Code Online (Sandbox Code Playgroud)

有没有办法显示父级提交的ID到存储列表?

我试过:git stash list --oneline --parents,这给了我:

1b5dfb1 …
Run Code Online (Sandbox Code Playgroud)

git git-stash

6
推荐指数
1
解决办法
639
查看次数

存储,拉动和弹出与提交和拉动 - 基础之间是否存在重大差异?

我的工作流程目标通常是避免无意义的合并.要做到这一点,我经常做两件事之一:

  1. 我提交更改并git pull --rebase防止不必要的合并.如果我以后希望更改现有提交,我会进行更改,提交并合并使用git rebase --interactive
  2. 我只是简单地进行git stash了更改,然后git pull通常只是git stash pop在我希望修改和/或提交它们时进行这些更改.

一些同事警告我git stash save/ git stash pop不安全.我想知道使用提交和git pull --rebase存储列表是否有任何微妙的优点.

git git-stash git-rebase

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

从旧存储生成补丁文件

我希望.patch根据我可以查看的旧存储的差异创建一个文件git stash show -p stash@{2}

我试过这个,但没有运气:

git format-patch stash@{2} --stdout > file.patch
Run Code Online (Sandbox Code Playgroud)

我认为它会像正常提交一样工作?为很可能超级厚而道歉。

谢谢!

git

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

标签 统计

git ×10

git-stash ×8

git-log ×1

git-pull ×1

git-rebase ×1

githooks ×1