相关疑难解决方法(0)

如何使用sed替换换行符(\n)?

如何\n使用sed命令替换换行符()?

我没试成功:

sed 's#\n# #g' file
sed 's#^$# #g' file
Run Code Online (Sandbox Code Playgroud)

我如何解决它?

sed

1295
推荐指数
23
解决办法
157万
查看次数

将git post-commit挂钩应用于所有当前和未来的repos

我写了一个Git post-commit钩子,它工作正常.但是,我想添加此钩子以应用于我正在处理的所有当前(和将来)git存储库.我尝试将钩子添加到我~/.git/hooks/而不是项目目录中的hooks目录中,但是,这似乎不起作用.

有没有办法创建将应用于我的系统上的所有存储库的全局Git挂钩(无需将它们复制到每个项目目录中)?如果没有,那么最好的解决方案是什么 - 也许是一个git-init模板?

git hook githooks

266
推荐指数
4
解决办法
7万
查看次数

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 add .`和`git add -u`有什么区别?

我假设两者都以同样的方式工作.两者都将每个文件添加到索引.但我似乎错了.

  • git add .和之间有什么区别git add -u

git git-add

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

如何知道git rebase是否正在进行中?

当我开始时git rebase -i,我可以发出像git rebase --continue或的命令git rebase --abort.这些命令仅在rebase正在进行时才有效.

我如何知道是否有正在进行的改造?

(我非常感谢关于rebase如何在内部工作的一些细节; git对一个repo做了什么,使它具有"rebase in progress"状态,?)

git git-rebase

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

git - 修剪空格

我不小心在我的初始提交中放了一些空格- 它显示为红色git diff --color.什么是摆脱现有空白的最佳方法,我怎样才能避免这种情况再次发生?

我不一定在寻找内置的git命令.任何在Ubuntu上免费提供的外部程序也是受欢迎的.

git whitespace code-cleanup removing-whitespace

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

git在提交之前删除新文件中的尾部空格

我知道删除尾随空格可以使用预提交钩子完成.我有兴趣手动完成它.我在这里阅读了这个问题:
让Git在提交之前自动删除尾随空格 - Stack Overflow
最接近我想要的答案是来自ntc2的"自动版本":

(export VISUAL=: && git -c apply.whitespace=fix add -ue .) && git checkout . && git reset
Run Code Online (Sandbox Code Playgroud)


该命令运行良好,除了它似乎只是对已存在于repo中的文件的更改,而不是新文件.我有一堆新文件,这意味着它们还没有在回购中.我想从这些文件中删除空格,所以我尝试添加-A而不是-u,但这并没有什么区别.

git whitespace removing-whitespace

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

Git还原git diff -w忽略的所有更改

当我做

git diff -w file_name
Run Code Online (Sandbox Code Playgroud)

我看到只添加了行,但是当我删除时,-w我看到很多被删除和重新添加的行.

我想更改文件,以便我只显示-w选项未忽略的更改.

那是否有命令?

git diff git-diff

10
推荐指数
2
解决办法
224
查看次数

如何忽略/恢复文件内容中大小写的更改?

我正在对 Microsoft Access VBA 代码进行版本控制,该代码通常不区分大小写。然而,变量名的情况在那时(由 Access 编译器或由开发人员)时不时地发生。这通常会导致我的 git 工作区发生巨大变化。

如何还原或忽略仅涉及文件内容大写或小写的更改?

一个例子:

git init
echo "public sub example()\nend sub" > mdlExample.ACM
#                ^-- lower e
git add --all
git commit --all --message "Initial Commit"
echo "public sub Example()\nend sub" > mdlExample.ACM
#                ^-- upper E
Run Code Online (Sandbox Code Playgroud)

我会喜欢这样的东西:

git restore --only-case-changes # not working
Run Code Online (Sandbox Code Playgroud)

进而:

git status
> On branch master
> nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)

git bash case-insensitive git-bash

7
推荐指数
2
解决办法
265
查看次数

如何在Sublime Text 2中关闭某些文件的删除空格?

trim_trailing_white_space_on_save打开了一个选项.对于某些文件,我应该防止删除尾随空格,因为它们很重要.

如何删除某些文件的此行为,例如*.dat?

sublimetext2

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