相关疑难解决方法(0)

修改时更新git commit author date

我发现自己经常修改我的提交.我没有stash那么多,因为我倾向于忘记我这样做,特别是当我想要在我离开之前或周末之前保存我所做的事情时,所以我做了一个"草稿"提交.唯一的问题是,当我修改提交时,它仍然设置为原始作者日期.在修改时是否有(简单)方法更新它?

git

268
推荐指数
4
解决办法
8万
查看次数

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

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

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

git hook githooks

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

git rebase而不更改提交时间戳

git rebase在保留提交时间戳的同时执行是否有意义?

我相信结果是新分支不一定按时间顺序排列日期.这在理论上是否可行?(例如使用管道命令;只是好奇这里)

如果理论上可行,那么在实践中是否可以使用rebase,而不是更改时间戳?

例如,假设我有以下树:

master <jun 2010>
  |
  :
  :
  :     oldbranch <feb 1984>
  :     /
oldcommit <jan 1984>
Run Code Online (Sandbox Code Playgroud)

现在,如果我重新oldbranch启动master,则提交日期将从1984年2月更改为2010年6月.是否可以更改该行为以便不更改提交时间戳?最后我会得到:

      oldbranch <feb 1984>
      /
 master <jun 2010>
    |
    :
Run Code Online (Sandbox Code Playgroud)

那会有意义吗?甚至允许在git中有一个旧提交最近提交作为父项的历史记录?

git timestamp git-rebase

144
推荐指数
5
解决办法
4万
查看次数

你可以在git commit期间更改文件内容吗?

在GitHub的开放小说中保留的一个东西是我想自动设置第一行的单词列表,这是字典中单词的数量.我的第一个选择是编写一个预提交钩子,它读取文件,计算单词,重写第一行并再次写回.这是代码

PRE_COMMIT {
  my ($git) = @_;
  my $branch =  $git->command(qw/rev-parse --abbrev-ref HEAD/);
  say "Pre-commit hook in $branch";
  if ( $branch =~ /master/ ) {
     my $changed = $git->command(qw/show --name-status/);
     my @changed_files = ($changed =~ /\s\w\s+(\S+)/g);
     if ( $words ~~ @changed_files ) {
       my @words_content = read_file( $words );
       say "I have $#words_content words";
       $words_content[0] = "$#words_content\n";
       write_file( $words, @words_content );
     }
   }
};
Run Code Online (Sandbox Code Playgroud)

但是,由于该文件已经暂存,我收到此错误

错误:checkout将覆盖对以下文件的本地更改:text/words.dic请在提交更改或存储更改之前切换分支.中止

可能最好将它作为一个后提交钩子并将其更改为下一次提交?或者做一些完全不同的事情?一般问题是:如果您想在提交期间处理和更改文件的内容,那么正确的方法是什么?

git hook commit

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

当我推送到 GitHub 时,我可以隐藏提交时间吗?

正如标题所说:我希望我推送到 GitHub 的所有提交都带有推送的时间戳,而不是提交的时间戳,显示在 GitHub 的提交选项卡中。

我使用相当标准的工作流程:

<do some work>
git add -u
git commit -m "Message 1."
...
<do some work>
git add -u
git commit -m "Message N."
git push myrepo master
Run Code Online (Sandbox Code Playgroud)

这使得所有 N 次提交都显示在 GitHub 中,这很好。但是也显示了提交的时间,我不喜欢。我更喜欢只显示最后一个(或推送)的时间戳。

git logging timestamp github

5
推荐指数
2
解决办法
3387
查看次数

标签 统计

git ×5

hook ×2

timestamp ×2

commit ×1

git-rebase ×1

githooks ×1

github ×1

logging ×1