相关疑难解决方法(0)

Git责备 - 事先提交?

是否有可能报告提交之前查看谁编辑了特定行git blame,例如给定行的提交历史记录?

例如,我运行以下(在极好的uncrustify项目上):

$ git blame -L10,+1 src/options.cpp
^fe25b6d (Ben Gardner 2009-10-17 13:13:55 -0500 10) #include "prototypes.h"
Run Code Online (Sandbox Code Playgroud)

如何提交之前找出谁编辑了该行fe25b6d?又是谁之前编辑它承诺?

git commit blame

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

git移植和替换有何不同?(移植物现在已被弃用吗?)

有极少数的Q&A的上的git graftsreplace.搜索[git] + grafts + replace只发现了两个与5. what-are-git-info-grafts-forgit-what-a-a-graftcommit-or-a-graft-id相关的两个.git.wiki.kernel.org:GraftPoint上还有一个注释

被移植现在完全取代replacefilter-branch,或者他们仍然需要一些特殊的情况(和向后兼容)?

一般来说,它们如何不同(例如哪些在回购之间运输),它们通常是如何相同的?我已经看到Linus似乎并不关心目前在关于提交代数的讨论(最大父母回到任何根种类)的问题"移植已经不可靠了."

编辑:找到更多信息.
搜索www.kernel.org/pub/software/scm/git/docs graft仅找到3个结果:

  1. GIT-滤波器分支(1),
  2. v1.5.4.7/GIT-滤波器分支(1),
  3. v1.5.0.7/GIT-s​​vn的(1).

稍微宽泛的搜索发现RelNotes/1.6.5.txt包含:

  • refs/replace/hierarchy被设计为可用作"移植"机制的替代,其附加优势是它可以跨存储库传输.

不幸的是,gitrepository-layout(5)还没有更新refs/replace/repository布局信息(和注释),也没有任何信息/移植的弃用说明.

这更接近支持我的想法,但我欢迎任何确认或澄清.

git

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

Git提交不会覆盖git blame中的原始作者

我使用perl脚本修改php git存储库中的所有制表符并将它们全部更改为4个空格.

$ find -iname \*.php -exec perl -pi -e "s/\t/    /g" {} \
Run Code Online (Sandbox Code Playgroud)

我可以提交这个更改git commit,但它会在我提交之后将我标记为内部所有更改行的作者git blame.

有没有办法实现这个大规模的改变,不会让我成为改变行的作者,但保留原作者?这是我们在项目中并不想丢失的很多历史.

我们用4个空格替换制表符的目的不是为了使git责备中的东西看起来不同,而是遵循适当的PEAR编码标准.例如没有标签,使用4个空格进行缩进.

git git-commit git-blame

24
推荐指数
2
解决办法
4840
查看次数

为什么 git blame --ignore-rev/--ignore-revs-file 对我不起作用?

git blame --ignore-revs-file显然是现代 Git 中存在的一个选项。

只有一个问题。它不起作用。

或者至少,它对我不起作用:

您可以将其添加到 shell 脚本中:

mkdir -p /tmp/blarp
cd /tmp/blarp
git init
cat << EOF > file.txt
one
two
three
EOF
git add file.txt
git commit --author "One <one@example.com>" -m 'one commit'
cat << EOF > file.txt
one
awesome
three
EOF
git add file.txt
git commit --author "Two <two@example.com>" -m 'two commits'
cat << EOF > file.txt
one
awesome
sauce
EOF
git add file.txt
git commit --author "One <one@example.com>" -m 'three commits'
git rev-parse …
Run Code Online (Sandbox Code Playgroud)

git ignore revision-history

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

隐形的git元提交

我有一个问题,故事所描述的原因.为了尊重读者的时间,可以跳过故事部分.:)

简短:有没有办法检查对git存储库的更改,但是"隐藏"变更集元数据与一般消费(保留先前的变更集中的责任等)?

很长时间(随意跳过剩下的部分):我最近继承了一个代码库,从它的外观来看,它有一个最初的团队领导,鼓励他的每个开发人员 - 作为精神成长的练习 - 来觅食进入这个世界并找到一种他觉得最像禅宗的格式化风格......真正找到他们各种艺术风格,将它们应用于代码格式化,并在每天绘制代码杰作时过着艺术家的生活.出现了一些模式,例如随机选择语句之间的换行符数,包装每个方法参数 - 声明调用......它一直在继续,但基本上我想在IDE中设置我的格式化首选项,将它转为松散几个小时,清理混淆的地方,并提交它.我从团队那里得到了一些(有效的)推迟,因为在注释中显示的容易看见的"最后一个触摸它"插槽中丢失了所有历史记录.有没有什么办法可以做出不会让那些东西消失的改变?我也在想,可能会有一个分支技巧,可以做分支,格式化分支,将另一个分支重新整合到那个分支中,以某种方式使我的"秘密提交"升级最新的保留旧的那些.

有人有什么建议吗?我完全愿意为这一次性招待黑客.:)

git formatting

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

为什么 `git blame` 与 GitHub blame 不同?

如果我克隆引导程序: git clone https://github.com/twbs/bootstrap

然后做一个 git 责备: git blame js/src/alert.js

看起来每一行最后都被同一个人触动过:

^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   1) import Util from './util'
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   2)
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   3)
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   4) /**
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   5)  * --------------------------------------------------------------------------
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   6)  * Bootstrap (v4.0.0-alpha.6): alert.js
^7ffb61a (Patrick H. Lauke 2017-04-17 00:04:49 +0100   7)  * Licensed …
Run Code Online (Sandbox Code Playgroud)

git github

0
推荐指数
2
解决办法
325
查看次数