相关疑难解决方法(0)

如何在git历史中grep(搜索)已提交的代码?

我过去的某个时候删除了文件或某些代码.我可以在内容中进行grep(不在提交消息中)吗?

一个非常糟糕的解决方案是grep日志:

git log -p | grep <pattern>
Run Code Online (Sandbox Code Playgroud)

但是,这不会立即返回提交哈希.我一直玩得git grep无济于事.

git diff grep

1342
推荐指数
10
解决办法
36万
查看次数

Git:如何在项目提交历史中找到已删除的文件?

曾几何时,我的项目中有一个文件,我现在希望能够获得.

问题是:我不知道何时删除它以及它在哪条路径上.

如何存在此文件的提交?

git

1183
推荐指数
9
解决办法
29万
查看次数

搜索所有Git历史记录中的字符串?

我有一个代码库,我想将其作为开源推送到GitHub.在这个git控制的源代码树中,我有一些包含密码的配置文件.我确保不跟踪此文件,我也将其添加到.gitignore文件中.但是,我希望绝对肯定的是,没有任何敏感信息会被推送,也许是因为某些事情在提交之间滑落了.我怀疑我做得不够粗心,但我想要积极.

有没有办法"grep"所有的git?我知道这听起来很奇怪,但是"全部"我想我的意思是每个版本的文件都是.我想如果有一个命令为每次提交转储diff文件,那可能有用吗?

git

704
推荐指数
3
解决办法
22万
查看次数

git的半秘密空树对象是否可靠,为什么没有符号名称呢?

Git有一个众所周知的,或者至少是众所周知的空树,其SHA1是:

4b825dc642cb6eb9a060e54bf8d69288fbee4904
Run Code Online (Sandbox Code Playgroud)

(你可以在任何仓库中看到这个,甚至是新创建的仓库,用git cat-file -tgit cat-file -p).

如果您努力工作并且非常小心,您可以使用这个空树来存储没有文件的目录(请参阅如何将空目录添加到git存储库的答案),尽管这不是一个好主意.

它作为一个参数更有用git diff-tree,其中一个示例钩子可以做到.

我想知道的是,

  1. 这有多可靠 - 即,某些未来版本的git没有编号的git对象4b825dc642cb6eb9a060e54bf8d69288fbee4904
  2. 为什么空树没有符号名称(或者有一个?).

(创建符号名称的快速而肮脏的方法是将SHA1放入,例如,.git/Nulltree不幸的是,您必须为每个repo执行此操作.似乎更好地将幻数放在脚本中等等.我只是有一般的厌恶到魔术数字.)

git

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

如何使用git bash在git中暂存单行?

只需创建一个包含空test.txt文件的文件夹,然后添加并提交即可。然后添加以下内容:

new line keep

new line skip

new line bad

new line keep 2
Run Code Online (Sandbox Code Playgroud)

现在假设,我只想保留第一行和最后一行。根据此答案,我应该能够使用git add -i -p test.txts选项拆分单个块,但这不起作用(并且不会显示选项)。我想念什么吗?
diff看起来确定:

在此处输入图片说明


VI中的编辑问题:出了什么问题?我修改成功 在此处输入图片说明

然后我想退出,但 在此处输入图片说明

git

3
推荐指数
2
解决办法
54
查看次数

git-worktree和git-subtree有什么区别?

就在我以为Git不再复杂的时候,我才发现git worktree。这是我不知道的子树或功能的代名词。工作树与子树相同还是不同?如果它们不同,它们又如何不同,工作树将解决什么问题?

git subtree git-worktree

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

标签 统计

git ×6

diff ×1

git-worktree ×1

grep ×1

subtree ×1