我正在学校的计算机上编写一个简单的脚本,并将更改提交给Git(在我的pendrive中的repo中,从我家里的计算机克隆).几次提交后,我意识到我正在以root用户身份提交东西.
有没有办法将这些提交的作者改成我的名字?
我需要将我的git repo分成两部分.我使用了这里显示的步骤:Detach(move)子目录到单独的Git存储库中
我使用的命令是:
git filter-branch --subdirectory-filter ABC HEAD -- --all
Run Code Online (Sandbox Code Playgroud)
这似乎很好,并留下了ABC作为根.
但是现在,如果我尝试检查在拆分回购之前存在的标记:
git checkout an-old-tagname
Run Code Online (Sandbox Code Playgroud)
它正在重新创建旧的目录结构 - 所以重新创建ABC作为子目录,以及XYZ1和XYZ2.
我知道回购真正看到了那个时间点 - 但我希望标签只引用ABC位,好像它们当时已经在根部.我认为这是filter-branch在重写历史时所做的事情,但显然我并没有正确地理解它.
如何重新编写标签,以便我可以回到过去,同时仍然将ABC作为回购的根源?
我使用git svn将Subversion存储库转换为Git,但遗憾的是现在只注意到一些作者信息是错误的.转换后的存储库尚未与任何人共享,因此我想重写其中的提交日志 - 如果可能的话.
如何重写git存储库,以便所有提交的日志显示,例如
Author: John Doe <john.doe@example.com>
Run Code Online (Sandbox Code Playgroud)
代替
Author: John Do <john.do@example.com>
Run Code Online (Sandbox Code Playgroud)
我自己尝试这样做,似乎git-filter-branch是我需要的.不过,我无法做到这一点.
我最近在GitHub上开了一个回购.我是Git的新手.和新手一样,我承诺使用默认名称和电子邮件,我在最好的noob传统中发现了五次提交为时已晚.现在开始有趣了,因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息.精细.我基本上找到了以下信息和很多副本:
这个问题似乎并不少见.我只能说没有一个解决方案有效.其中一半是同一git filter-branch -f --env-filter剧本的变体.我尝试多次处理该脚本.问题是在应用脚本后,我无法推送."快进推动被拒绝"或类似的东西.好吧,唯一的方法就是拉.拉动后,所有旧信息再次出现+带有新信息的新分支.我已经坐在这里有四个分支,以最恶劣的方式合并,都包含不同作者姓名的相同信息,包括我想删除的那个.
可以简短地删除它,我也试图删除选定的提交,这会产生我无法解决的令人毛骨悚然的冲突(如何???),并使用正确的作者信息将一些提交压缩到更新的提交中,导致当前项目状态遭到破坏.更好的是,我在执行后有时会出现分段错误git rebase -i,我在此通知:http://lists-archives.org/git/729800-rebase-i-segmentation-fault-and-another-problem.html完全是逻辑.(谢天谢地)唯一有用的是git rebase --abort,它多次保存了我的屁股.
我希望我的挫折感不会被击退,而是逗你,激励你去帮助我.我想要:
最后删除所述作者信息
奖励:摆脱包含相同信息的所有分支.
但是我对第一个也很满意,如果在没有破坏当前状态的情况下删除过去的分支的障碍对于一个git新手来说太过分了.提前致谢.
你能提供一个(全部或最常见的)操作或命令列表,这些操作或命令会危害git中的历史记录吗?
什么应该绝对避免?
git commit/ git push/ git commit --amend)我希望这个问题(如果它还没有在其他地方之前提出过)成为关于git上常见的可避免操作的某种参考.
此外,我使用git reset了很多,但我还没有完全意识到我可以对存储库(或其他贡献者副本)造成的损害.可能git reset有危险吗?
让我们假设一个 git 存储库满足以下条件:
现在,我想重新建立一个分支,我在那里完成了部分工作,并且一位同事推送了一些提交;我想“保留”我所做的提交上的签名(即重新签署我用新历史记录所做的所有提交,即使在合并冲突的情况下),但不签署不是由我编写的工作(即。我更喜欢丢失同事提交的签名,而不是签署它们)。
我可以使用(就像在回答这个问题git rebase -S时提出的那样);但这也会签署我同事的承诺。
有没有办法做到这一点?
我想删除在存储库中创建的所有提交的时间,尤其是时区信息。那可能吗?如果不是,是否可以简单地将时间00:00和时区设置为+0000?
(顺便说一句,我想保留日期。这只是我不想要的时间和时区。)
我只发现了关于更改所有提交的作者的问题,但没有发现关于仅更改所有提交中的属性以保留剩余信息的问题。
是的,我知道人们可以通过其他方式找到我住的地方等,但这对我来说已经足够了。