在工作中,我们有一个庞大的Perforce存储库(大约40k更改列表,总存储大小~145GB).我们对Perforce只有一些温和的抱怨感到满意,但我们计划采用更加分散的开发模式,因此,我们也希望转向更加分散的版本控制系统.
到目前为止,我已经看过通常的嫌疑人(git,mercurial和潜在的集市,因为我对它有很好的经验),但我们目前的主要障碍是从Perforce获取版本历史并导入各种DVCS,所以我们不要失去了历史.如果我们不一定要保留它,我们也不希望Perforce服务器徘徊 - 我这种迁移的经验是,一段时间后没有人看过旧的回购,所以你会失去历史那样.
由于有多个项目资源库中的想法是,当我们出口的历史,不是每个人都需要能够看到历史的每一个零件,将它拆分成多个DVCS项目.然而,我们最大的项目仍然包含大约2/3的承诺修订版,并且还占用了大约2/3的存储空间.它拥有最多的分支机构 - 大约30个.
到目前为止,我已经尝试了以下内容 - 一切都在Windows上,因为我们只是一个Windows专卖店:
hg convert扩展名导入Mercurial .这似乎对我正在转换的项目的主要分支非常有效,但是尝试使用分支图将Perforce分支转换为命名的Mercurial分支仍然会在默认分支上的每个签入时生成平面导入.也许那是因为我设置了分支映射错误,但hg help convert建议你只能将Perforce repo变成一个"扁平"结构而没有使用这个导入器的分支,这对我们的使用来说还不够好.所以,我的问题是:
在 repo 的主页上,我们有 2 位贡献者。
我删除了底部用户的所有提交(一:))。在 /graphs/contributors 页面上,我们可以看到 2 位贡献者。如何从 git repo 的主页中删除一个?
我在提交时遇到错误:
您的推送将发布一个私人电子邮件地址。
我在这里看到它建议设置匿名电子邮件地址。
但我阅读了文档,它只是显示添加到 https://github.com/settings/emails
这需要验证。但我只是设置了一些随机电子邮件noreply@yahoo.com,但我没有。但文档说要验证它。我不明白这一点。或者我是否需要为此创建一些真实的电子邮件或使用一些临时电子邮件服务以便我可以验证?
我什至不明白为什么 git push 开始需要一些电子邮件。前几天我在push commits的时候并没有出现这样的错误。
更新
好吧,这可能是因为我分叉了一个存储库并进行了提交。我第一次在 forket 存储库上进行了提交。我看不到我的电子邮件在该提交中实际可见的位置。
前几天,我分支了github项目以创建静态页面,但搞砸了我的作者姓名
https://github.com/ronaldsuwandi/le-simplepage/commits/gh-pages
如何为分支的第一次提交重命名作者?
我试过了
但是没有运气-我对git还是很陌生。
编辑:如果我想更改第一个提交(例如,如果我的提交历史记录是并且我想更改我可以执行的提交历史记录,那么Amber给出的答案将无效)。想更改自身的提交历史。A-B-C-DBgit rebase -i AA
我有一台运行Git的Linux机器。我检查了一个仓库,并从linux commnad行进行提交。当我执行推和拉操作时,它会问我我的用户名和密码,然后显示成功。
但是,在日志中,它显示由root提交。我检查了git config,但找不到任何东西。
这是我的配置文件的值:
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=https://github.com/my-username/RepositoryName.git
branch.stage.remote=origin
branch.stage.merge=refs/heads/stage
Run Code Online (Sandbox Code Playgroud) 我已更改 GitHub 中的用户名。我对 Git 进行了一些提交,并输入命令 >git log 来查看我的提交。在作者部分,它仍然显示我以前的用户名。如何更改/更新 Git 上当前的用户名?提交后,它也应该反映在作者部分。
> git log
commit commitId (HEAD -> master)
Author: **My previous username** <My email id>
Date: Sun Feb 14 16:39:26 2021 +0530
Run Code Online (Sandbox Code Playgroud)