相关疑难解决方法(0)

当前分支上有未提交的更改时,检出另一个分支

大多数时候,当我尝试检出另一个现有分支时,如果我在当前分支上有一些未提交的更改,Git不允许我.所以我必须首先提交或存储这些更改.

但是,偶尔Git允许我签出另一个分支而不提交或存储这些更改,它会将这些更改带到我签出的分支.

这里的规则是什么?更改是分阶段还是未分阶段是否重要?将更改传递给另一个分支对我没有任何意义,为什么git有时会允许它?也就是说,它在某些情况下有用吗?

git

319
推荐指数
4
解决办法
12万
查看次数

如何在预提交钩子中正确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 ×2

git-stash ×1

githooks ×1