Git-hook 显示我在签出的分支上是否有存储

问题描述 投票:0回答:1

以下情况已经发生过几次,我正在寻找一种自动方法来在我重复错误之前阻止自己。说“记住”或“不要这样做”的解决方案不会被标记为正确。

经常,我会在 git 分支上工作,有一些未提交的代码,并且很快需要对另一个分支进行更改。我使用

git stash
存储未提交的代码,
git checkout
交换到另一个分支,我进行并提交更改,然后我
git checkout
到另一个分支。并且希望,我记得
git stash pop
。问题是我并不总是记得,特别是如果我最终不得不在另一个分支上进行一些更改,而这最终需要几个小时/几天的时间。

是否有一个 git hook 我可以写,当我签出一个有存储的分支时,会向我发送一条小消息?比如:

$ git checkout foo
Switched to branch 'foo'
You have 1 stash on this branch, use `git stash pop` to unstash it.

它不一定很花哨,但我认为它会帮我省去很多头痛。像“只要记住运行

git stash list
”之类的答案将不会被接受。

git githooks git-stash
1个回答
0
投票

建议的解决方案:临时提交。

作为示例,让我们以您的典型场景为例:

很多时候,我会在 git 分支上工作,有一些未提交的代码,并且很快需要对另一个分支进行更改。

这确实是一个很常见的情况。但随后你就会:

我使用 git stash 来存储未提交的代码,使用 git checkout 交换到另一个分支,我进行并提交我的更改,然后我使用 git checkout 到另一个分支。

此时我们要改变路线。仅对您想要删除的片段使用存储,但可能需要稍后检查,以防事后想起。

对于有效但未完成的代码,不要隐藏,而是提交。为此使用几个快速别名:

git config alias.wip 'commit -am "WIP - DO NOT MERGE"'
git config alias.unwip 'reset HEAD~'

您必须急着换分行吗?

git wip
并在其他地方结账。当您更改回分支时,使用
git unwip
撤消临时提交并继续工作。

您很快就会习惯它,并且储藏室将保留(它应该被命名为)纸箱。 (与 Windows 一样,它不会立即删除内容,而是让您检查并恢复最近删除的文件,如果需要的话,偶尔检查和恢复)

© www.soinside.com 2019 - 2024. All rights reserved.