当我在本地开发分支上运行git lg
时,最新的提交如下所示:
* 7d21213 - (1 hours ago) update business rules - developer1 (HEAD, origin/develop, origin/HEAD, develop)
然而,如果我运行git stash
来隐藏本地更改,然后运行git lg
,我会得到以下内容:
* at12334 - (13 seconds ago) WIP on develop: 7d21213 update business rules - developer1 (refs/stash)
|\
| * ef9a11b - (14 seconds ago) index on develop: 7d21213 update business rules - developer1
|/
* 7d21213 - (1 hours ago) update business rules - developer1 (HEAD, origin/develop, origin/HEAD, develop)
这是什么意思?看起来在存储后创建了两个新的提交(标记为index
和WIP
)。 如果是这样,那么背后的逻辑是什么?
注意
git lg
is an alias already defined in the test environment as
git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)' --all
git commit -a -m“WIP”
的'+1'是git stash
的更好替代品。 - Brent Bradburngit stash
可以在rebase期间非常有用--以便您想要回溯一点进行评估、测试并且重新排列早期提交。我不知道是否有其他替代方法可以复制git stash
在此场景中的功能。 - Brent Bradburngit stash
是一个方便的工具,可以使用正常的提交/检出机制轻松模拟它(这可能更安全)。 - Brent Bradburn