我正在使用git,我希望能够创建一个不与远程存储库同步的提交。这样的提交必须“float”在本地存储库中的所有其他提交之上,以避免影响历史记录。我可以使用这样的提交来存储特定于本地的更改(配置更改、调试标志、本地解决方法等)。目前,我在提交时手动rebase以将提交重新排序回顶部,并且我使用HEAD^推送以避免推送本地更改。我也考虑过将更改放入存储中,但这不太方便,因为它妨碍了存储的正常使用。另一种选择是简单地保留所有这些本地更改未暂存,并在每次我想提交时使用gitadd-p。然而,随着大量琐碎的本地更改,这变得很麻烦。这是我当前工作流程的示例:我的仓库最初看起来像A---B---C-
是否可以在提交之前准备提交消息,这意味着我将在实际提交之前或在工作目录期间键入我的提交消息,以便我知道我在做什么以及我知道这个分支或提交将是所有关于。当我说“之前”时,我并不是指在命令行上输入提交之前的几秒钟。我的字面意思是在提交之后或分支开始时,以便下一次提交将自动继承队列中的消息或可能调用的任何内容。当然我可以在提交期间放置这些消息,对我来说是有区别的。而且我可以看到git的论点也不是为了那个。我只是对此感到好奇。我也知道我可以给我的分支起更有意义的名字,但我只是想要一些空间用于此目的。 最佳答案 Git可以使用-F或--fil
在进行merge并解决冲突后,是否有一种“简单”的方法来仅从命令行接受默认生成的提交消息?我们的一位开发人员将解决所有冲突,然后执行gitcommit-m"MergeCommit"替换生成的列出所有冲突文件的提交消息。我想要一个不同的标志,它只需要不修改当前文件。我知道有一个-F或--file=选项,但这需要始终知道文件名。谢谢 最佳答案 根据thedocs,我只是尝试了这个简单的命令,它对我有用:gitcommit--no-edit然后,运行gitlog确认默认消息已被使用。 关于gi
我在将sublime设置为我的git提交消息编辑器时遇到了问题。使用:gitconfig--globalcore.editor"subl"错误:错误:无法运行subl:没有那个文件或目录错误:无法启动编辑器“subl”请使用-m或-F选项提供消息。否则subl可以完美地工作。 最佳答案 对于它的值(value),这是我解决它的方法:1)在终端运行:sudoln-s/Applications/Sublime\Text.app/Contents/SharedSupport/bin/subl/usr/local/bin/subl这会向/u
应该使用哪一个来stash微提交?gitmerge--squash和gitmerge--no-ff--no-commit之间的唯一区别是其他parent的拒绝吗? 最佳答案 区别这些选项的存在是为了不同的目的。您的存储库以不同的方式结束。假设您在主题分支上完成开发后,您的存储库是这样的:--squash如果你checkoutmaster然后gitmerge--squashtopic;gitcommit-mtopic,你得到这个:--no-ff--no-commit相反,如果你执行gitmerge--no-ff--no-commit;
我正在学习来自Perforce的Git。据我所知,您必须在提交时的同一步骤中编写提交消息。或者我是否想念如何更早地编写消息并让它一直存在直到我准备好提交。我真的很喜欢perforce中的工作流程,您可以随时编辑更改列表描述,然后在准备就绪时checkin。就个人而言,我喜欢多次打开描述并在编写代码时进行记录,或者在我想到要指出的值得注意的事情时进行记录。可以用Git吗? 最佳答案 看看-t用gitcommit标记这让您可以指定一个文件作为提交消息的基础。仍然会调用编辑器,但至少您可以使用预先创建的提交消息。或者,还有另一个可以与gi
正如标题所说,我不太清楚gitmerge--squash和gitmerge--no-commit之间的区别。据我了解gitmerge的帮助页面,这两个命令都会让我处于更新的工作树中,仍然可以编辑然后进行最终提交(或多次提交)。有人可以澄清这两个选项的区别吗?我什么时候会使用一个而不是另一个? 最佳答案 gitmerge--no-commit这就像一个普通的merge,但不创建merge提交。此提交将是mergecommit:当您查看历史记录时,您的提交将显示为正常merge。gitmerge--squash这会将更改merge到您的
看起来很简单,但我就是不明白。我在我的应用程序的根目录中。这是我的工作流程。gitadd.gitcommit-m"addedanewfeaturesomefileschanged"gitpushherokumaster这通常有效。我的所有更改都已推送。但有时我有一个我更改的文件,但是当我推送到Heroku时,那个文件的更改不存在......但对于大多数文件来说,更改在那里......但如果我这样做gitadd.gitcommit-am"addedanewfeaturesomefileschanged"gitpushherokumaster一切(所有更改)都被推送到Heroku
我如何配置gitcommit以默认充当gitcommit-v(显示正在提交的完整差异)?使用别名不是很令人满意,因为它不会影响在可能间接提交的操作期间编辑提交消息,例如gitrebase。 最佳答案 如果您使用的是git2.9,这可以通过配置来完成。gitconfig--globalcommit.verbosetrueGit2.9.0发行说明:https://github.com/git/git/blob/v2.9.0/Documentation/RelNotes/2.9.0.txt"gitcommit"learnedtopayat
我在使用Git时遇到了一些问题。我有一个存储库,我可以毫无问题地向其中提交任何文件。但是,有一个文件“Funder.php”,当我尝试提交时,它告诉我有一个错误:Commitfailedwitherror:pathspec'application/libraries/Funder.php'didnotmatchanyfile(s)knowntogit.我对此很陌生,所以想知道是否有人可以提供帮助? 最佳答案 这个错误发生的原因在这篇文章中指出:https://stackoverflow.com/a/29485441/2769415W