相关疑难解决方法(0)

如何在shell脚本中只读取一个字符

我想要像getche()C中的类似选项.如何从命令行只读取一个字符输入?

read我们可以使用命令吗?

linux io shell ksh

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

如何编辑git merge的提交消息

我已经与其他分支合并,并且在合并之后很少提交,之后我想要更改合并的消息.git rebase -i没有显示合并提交.

git

10
推荐指数
1
解决办法
7470
查看次数

如何在不丢失Git中的最后一次提交的情况下返回上一次提交?

这就是我想要做的.我想在之前返回2次提交,将提交中更改的文件作为新提交带回来.但我不想失去我的最后一次承诺.我的最后一次提交在代码中有一些错误,但我现在想保留它.

我阅读了一些文档,但没有人清楚说明重置头部时会发生什么.例如,您是否会丢失所有提交,直到您重置为(向后)的提交?

我想了解这一切工作,但我比较困惑的git revert,resetcheckout命令.

我意识到我应该把最后一次提交藏起来而不是提交,但这是另一个故事.

git

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

使用'git filter-branch'来纠正最近N次提交中的提交者日期?

我最近需要使用'git am'在我的仓库中应用16个补丁,我小心地为每个补丁使用'--committer-date-is-author-date'.但是,我还需要调整每个am'd补丁的提交消息,并且 - 在完成所有16个补丁后 - 我发现'commit --amend'碰到了每个补丁的提交者时间戳.

我终于知道我的问题可以一举解决

git rebase --committer-date-is-author-date <SHA-of-commit-prior-to-patches>
Run Code Online (Sandbox Code Playgroud)

但是在尝试使用'filter-branch'来解决我的问题之前没有这个问题.我很好奇我做错了什么.这是我的尝试:

git filter-branch --env-filter \
    'export GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE' SHA1..HEAD
Run Code Online (Sandbox Code Playgroud)

这是结果:

Rewrite 1c52265d1f06bd67e0fed1c09e1e75249424476e (1/15)/usr/lib/git-core/git-filter-branch: 1: export: -0500: bad variable name
Run Code Online (Sandbox Code Playgroud)

我做错了什么?我不允许在env-filter中设置/导出一个变量作为另一个变量的值吗?请注意,如果$ GIT_COMMIT匹配特定SHA,我会从有条件地更改GIT_AUTHOR_DATE和GIT_COMMITTER_DATE的方法调整我的方法,但在这种情况下,两个GIT _*_ DATE变量都被设置为常量字符串,而不是另一个变量.

git git-filter-branch

10
推荐指数
1
解决办法
2884
查看次数

如何从git存储库中删除作者?

如果我创建一个Git存储库并公开发布它(例如在GitHub上等),并且我从存储库的贡献者那里得到一个请求,无论出于何种原因删除或隐藏它们的名称,有没有办法轻松地这样做?

基本上,我有这样的请求,可能想用"匿名贡献者"或者他们的电子邮件地址或类似的东西替换他们的姓名和电子邮件地址.

git version-control

9
推荐指数
2
解决办法
6870
查看次数

在Visual Studio中更改Git作者信息

我在Visual Studio Team Services中有一个团队项目,我使用git作为版本控制系统.

是否可以在Visual Studio网站中更改提交的作者姓名和电子邮件?

git visual-studio git-filter-branch azure-devops

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

更改先前提交的作者姓名:快进推送被拒绝

我最近在GitHub上开了一个回购.我是Git的新手.和新手一样,我承诺使用默认名称和电子邮件,我在最好的noob传统中发现了五次提交为时已晚.现在开始有趣了,因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息.精细.我基本上找到了以下信息和很多副本:

  1. http://help.github.com/change-author-info/

  2. 从Git中的分支中删除提交

  3. 如何在保持更改的同时从Git存储库中删除选定的提交日志条目?

  4. 在Git中更改多个提交的作者和提交者名称以及电子邮件

  5. 在一个特定的提交中更改提交作者

  6. 用Git更改项目的第一次提交?

  7. 我可以在之前的所有提交中更改我的姓名吗?

这个问题似乎并不少见.我只能说没有一个解决方案有效.其中一半是同一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 github

7
推荐指数
1
解决办法
9483
查看次数

如何在不丢失历史记录的情况下将大型Perforce存储库导出到不同的版本控制系统?

在工作中,我们有一个庞大的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变成一个"扁平"结构而没有使用这个导入器的分支,这对我们的使用来说还不够好.
  • 使用git-p4.py导入Git.Perforce文档使用git作为Perforce的分布式前端,并且基于repo的最新版本的关闭确实产生了一个可用的git repo.尝试使用分支导入整个子项目会导致导入器耗尽内存,所以我甚至无法判断它是否设法正确导入我们的仓库.
  • 然后我有了这个辉煌的大脑放屁,将Perforce repo导入SVN,所有分支都映射到适当的SVN分支,因为太阳下的每个版本控制系统都可以从SVN导入.这只是使用SVN作为转换的中间步骤,而不是目标VCS - 否则我们不会从这个转换中获得任何东西.使用p42svn.pl,这个过程很早就破坏了,因为我们的Perforce服务器似乎不喜欢被似乎为每个文件/修订版建立新连接的脚本所打击.
  • 我还没有考虑将历史输出到Bazaar,因为它有点像跑步.

所以,我的问题是:

  • 除了p42svn.pl之外还有一个很好的工具可以将Perforce repo导出到SVN吗?我不介意使用SVN作为中间回购,因为它似乎导致导出到我们看起来相当容易的所有DVCS.
  • 有没有人成功地将Perforce的分支机构导出到Mercurial的分支机构中,如果是这样,你是怎么做到的?关于转换扩展的文档似乎有点稀疏,我似乎无法找到一个好的/工作方式来做到这一点.

svn git mercurial perforce

7
推荐指数
1
解决办法
5095
查看次数

如何更新git commit author,但在修改时保留原始日期?

如果提交已经完成并推送到存储库,并且如果想要为某个特定提交更改作者,我可以这样做:

git commit --amend --reset-author
Run Code Online (Sandbox Code Playgroud)

但是,这将改变原始的承诺日期.

如何重置作者,但保留原始提交者日期?

git

7
推荐指数
6
解决办法
2003
查看次数

有没有办法gpg签署所有以前的提交?

正如标题所说,我正在寻找一种方法来gpg签署我在存储库中的所有先前提交(最好不要在每次提交时输入我的密码).

谢谢!

git gnupg

7
推荐指数
3
解决办法
2071
查看次数