如何修改现有的,未删除的提交的答案?描述了一种修改先前尚未向上游推送的提交消息的方法.新消息继承原始提交的时间戳.这似乎合乎逻辑,但有没有办法重新设定时间?
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中有一个旧提交最近提交作为父项的历史记录?
我有一个Windows Command脚本,旨在将dev分支合并到项目分支中.它首先读取当前分支名称,存储更改,获取和合并开发和项目分支,然后切换回原始分支并弹出存储.
问题是存储可能没有任何变化.这使得先前的存储位于堆栈的顶部.当它到达脚本的末尾并弹出存储时,它会弹出与当前分支无关的上一个存储.
Set SourceBranch=dev
Set ProjectBranch=project
:: Stash current changes.
For /F "tokens=1,2" %%a In ('Git branch -q') Do If "%%a"=="*" Set CurrentBranch=%%b
Git stash save -u
:: Pull latest source branch.
Git checkout %SourceBranch%
Git pull
For /F "tokens=1,3" %%a In ('Git branch -q -v') Do If "%%a"=="*" Set MergeHash=%%b
:: Merge source into project branch.
Git checkout %ProjectBranch%
Git pull
Git merge --commit %MergeHash%||Exit 1
:: Return to original branch.
Git checkout %CurrentBranch%
Git stash …Run Code Online (Sandbox Code Playgroud) 上下文:我希望能够通过我的git提交消息和提交进行搜索而无需经历令人费解的复杂git grep命令,因此我决定看看如何存储git commit消息.
我看了一下.git文件夹,它看起来像是存储的提交
.git/objects
Run Code Online (Sandbox Code Playgroud)
.git对象文件夹包含一堆名称为a6和9b的文件夹.这些文件夹中的每个文件夹都包含一个名称类似于提交的文件2f29598814b07fea915514cfc4d05129967bf7.当我在文本编辑器中打开其中一个文件时,我会感到胡言乱语.
在这个git commit日志中,文件夹9b包含一个commit sha
aed8a9f773efb2f498f19c31f8603b6cb2a4bc
Run Code Online (Sandbox Code Playgroud)
为什么,并且是否存在多个提交sha将存储在文件9b中的情况?
有没有办法将这个乱码转换成纯文本,以便我可以在文本编辑器中混淆提交?
我想手动控制git commit时间戳,以便我的GIT_COMMITTER_DATE始终与GIT_AUTHOR_DATE匹配。我已经看到许多使用filter-branch重写历史记录的解决方案,但是我宁愿对此保持主动,并将逻辑放在git hook中,以便它始终与向前匹配。
但是我发现,虽然这些变量如果在调用git的环境中定义时可以很好地工作,但是在预提交git钩子中定义它们时似乎没有任何作用。例如:
# this works if run directly on cmd line, but not inside the pre-commit hook
export GIT_AUTHOR_DATE='Mon, 11 Aug 2014 11:25:16 -0400'
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在git钩子内动态调整这些值,以使提交自动具有所需的时间戳?我正在使用git版本1.8.5.2