- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
TL;博士
(你可能会误解这一点,所以最好跳到下一节;)
我想找到(上一个)提交修补程序(提交或分阶段/未分阶段的工作区更改)将更改的内容。
博士:继续阅读,但跳过“背景”…
背景
我将在这里描述我的工作流程,这样你就可以理解我需要什么了。
在我的开发分支上,我经常在许多WIP提交中提交一些小的更改。当我对我的整体更改感到满意时,我会交互地重新平衡所有这些WIP提交,以创建一个干净的历史记录。我将提交压缩到其他提交中,并编写一个详细的提交消息。
有三种情况下,我想注意到前一个提交另一个提交应该被压扁。
当我注意到在之前的WIP提交中引入了一个bug时
当我想显式地将最近的更改合并到某个WIP提交中时
提到在错误修复程序的提交消息中引入错误的提交ID
然后,我做一个提交,注意到必须将更改(错误修复)压入的提交。
历史可能是这样的:
[WIP] Fixed some bug [SQUASH with '[WIP] Made some sloppy change'] (A)
...
[WIP] Made some sloppy change (B)
...
(A)
时,我按以下方式搜索commit
(B)
:
git diff
如果更改尚未提交
git log -1 -p
如果更改已经完成
git blame HEAD -- path/to/file
如果更改尚未提交
git blame HEAD~1 -- path/to/file
如果更改已经完成
git log <COMMIT ID>
git diff
)
diff --git a/Gruntfile.js b/Gruntfile.js
index 9af9384..380726c 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -82,6 +82,7 @@ module.exports = function(grunt) {
less: {
build: {
options: {
+ dumpLineNumbers: "comments",
paths: ["target/"]
},
@@ -141,7 +142,7 @@ module.exports = function(grunt) {
src: {
files: 'src/**',
- tasks: ['copy:source-tree', 'copy:devel-source-tree']
+ tasks: ['copy:source-tree', 'copy:devel-source-tree', 'less']
}
}
});
git blame -L82,+8 HEAD -- Gruntfile.js
和
git blame -L142,+8 HEAD -- Gruntfile.js
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 82) less: {
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 83) build: {
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 84) options: {
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 85) paths: ["target/"]
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 86) },
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 87)
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 88) files: {
f39f25c0 (Nobody 2014-05-17 16:08:20 +0200 89) "target/styles.css": "src/less/styles.less"
e2e46b59 (Nobody 2014-05-03 10:30:34 +0200 142) src: {
e2e46b59 (Nobody 2014-05-03 10:30:34 +0200 143) files: 'src/**',
e2e46b59 (Nobody 2014-05-03 10:30:34 +0200 144) tasks: ['copy:source-tree', 'copy:devel-source-tree']
f9a635c0 (Nobody 2014-04-21 16:03:38 +0200 145) }
f9a635c0 (Nobody 2014-04-21 16:03:38 +0200 146) }
f9a635c0 (Nobody 2014-04-21 16:03:38 +0200 147) });
5128dcdc (Nobody 2014-04-20 12:56:05 +0200 148)
f9a635c0 (Nobody 2014-04-21 16:03:38 +0200 149) grunt.task.loadTasks("tasks/");
git log --oneline -1 f39f25c0
和
git log --oneline -1 e2e46b59
)
f39f25c [WIP] * Changed to less (left .css file)
e2e46b5 [WIP] * Changed watch configuration
git-blame
手册页,但是我没有找到一个合适的选项来实现这一点(我确信我可能遗漏了一些东西)。
git log -p
或
git diff
生成的补丁。
git blame HEAD[~1]
输出来查找提交id,并提取提交id。
git blame -- <FILE>
和
git blame HEAD -- <FILE>
中提取commit列并将两个输出都输入到
diff
中,然后为
grep -C <N>
设置
00000000
来找到受影响的commit id来实现。
最佳答案
为了帮助完成后一部分,您应该真正研究git rebase -i --autosquash
。autosquash rebase将查找特殊格式的提交,以便在重新定位时自动对提交进行重新排序,并将其标记为压缩/修复。从git help rebase
:
--autosquash, --no-autosquash
When the commit log message begins with "squash! ..." (or "fixup!
..."), and there is a commit whose title begins with the same ...,
automatically modify the todo list of rebase -i so that the commit
marked for squashing comes right after the commit to be modified,
and change the action of the moved commit from pick to squash (or
fixup).
This option is only valid when the --interactive option is used.
If the --autosquash option is enabled by default using the
configuration variable rebase.autosquash, this option can be used
to override and disable this setting.
[WIP] Fixed sloppy change (A)
[WIP] Intermediate change (B)
[WIP] Sloppy change (C)
关于git - 查找先前更改或工作空间更改更改的最新提交的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23845779/
我的应用将 SceneKit 内容的“页面”与图像和文本交替。当我从图像页面前进到新的 SceneKit 页面时,前一个 SceneKit 页面中的内容会短暂显示,然后被新内容替换。时髦。 我只使用一
我正在尝试处理(在 C# 中)包含一些数字数据的大型数据文件。给定一个整数数组,如何对其进行拆分/分组,以便如果下一个 n(两个或更多)是负数,则前一个 n 元素被分组。例如,在下面的数组中,应该使用
刚接触promises,研究过。所以我的代码和我的理解: sql.connect(config).then(function(connection) { return connection.req
目前我在 if (roobaf) block 中有一些代码,这取决于 foo 和 bar 是否为假。我可以在 block 内再次检查这些条件,但感觉像是不必要的代码重复。 if (foo) {
我是一名优秀的程序员,十分优秀!