问题标签 [git]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 如何在 git 中将文件恢复到以前的状态?
鉴于以下交互:
如何在我的工作副本中恢复“foo”?我正在寻找类似的东西:
git - Mercurial 和 Git 有什么区别?
我在 Windows(使用 msysGit)上使用 git 已经有一段时间了,我喜欢分布式源代码控制的想法。就在最近,我一直在看 Mercurial (hg),它看起来很有趣。但是,我无法理解 hg 和 git 之间的差异。
有没有人在 git 和 hg 之间进行并排比较?我很想知道 hg 和 git 有什么不同,而不必参加狂热的讨论。
git - 您如何组织多个 git 存储库,以便将它们全部备份在一起?
使用 SVN,我在服务器上保存了一个大型存储库,并在几台机器上签出。这是一个非常好的备份系统,让我可以轻松地在任何机器上工作。我可以签出一个特定的项目,提交并更新“主”项目,或者我可以签出整个项目。
现在,我有一堆 git 存储库,用于各种项目,其中一些在 github 上。我也有我提到的 SVN 存储库,通过 git-svn 命令导入。
基本上,我喜欢将我所有的代码(不仅仅是项目,还有随机片段和脚本,一些东西,比如我的简历、我写的文章、我制作的网站等等)放在一个大存储库中,我可以轻松地克隆到远程机器,或记忆棒/硬盘驱动器作为备份。
问题是,因为它是一个私有存储库,并且 git 不允许签出特定文件夹(我可以将其作为单独的项目推送到 github,但更改会同时出现在主存储库和子存储库中)回购)
我可以使用 git 子模块系统,但它也没有按照我想要的方式运行(子模块是指向其他存储库的指针,并且并不真正包含实际代码,因此它对备份毫无用处)
目前我有一个 git-repos 文件夹(例如 ~/code_projects/proj1/.git/ ~/code_projects/proj2/.git/),在对 proj1 进行更改后git push github
,我将文件复制到 ~/ Documents/code/python/projects/proj1/ 并执行一次提交(而不是单个存储库中的众多提交)。然后做git push backupdrive1
等git push mymemorystick
那么,问题来了:您的个人代码和项目如何使用 git 存储库,并让它们保持同步和备份?
git - 如何删除 git 历史记录中的特定修订?
假设您的 git 历史记录如下所示:
1 2 3 4 5
1-5 是单独的修订版。您需要在保留 1、2、4 和 5 的同时删除 3。如何做到这一点?
当要删除的修订后有数百个修订时,有没有一种有效的方法?
git - Git“坏sha1文件”错误
您好,我的 git-fsck 出现以下错误,即使在 --aggressive 模式下也无法被 git-gc 清除。接下来我可以做什么来修复这个存储库错误?
git - git-stash 与 git-branch
在之前的 Git 问题中,Daniel Benamy 谈到了 Git 中的工作流程:
我正在研究master并提交了一些东西,然后我决定暂停这项工作。我备份了一些提交,然后从我开始我的垃圾工作之前分支。
他想在不丢失当前更改的情况下将自己的工作状态恢复到之前的时间点。所有的答案都以各种方式围绕着,比如
这比起来git stash
怎么样?当似乎所有事情git stash
都已经通过分支处理
时,我试图看看这里有什么不同的用例,我有点困惑……</p>
@Jordi Bunster:谢谢,这一切都清楚了。我想我会认为“隐藏”就像一个轻量级的、无名的分支。所以任何 stash 可以做的事情,branch 也可以,但是需要更多的词。好的!
svn - git 是否有类似 `svn propset svn:keywords` 或 pre-/post-commit 的钩子?
浏览 git 文档,我看不到任何类似于 SVN 的提交挂钩或“propset”功能的东西,例如,只要文件提交到存储库,就可以更新文件中的版本号或版权声明。
git 用户是否希望为这种功能编写外部脚本(这似乎不是不可能的)或者我只是错过了一些明显的东西?
编辑:为了清楚起见,我更感兴趣,例如,
像这样的字符串:
每当发生提交时,都会与相关信息保持同步。
git - 带有 Git 集成的错误跟踪器设置?
我知道我可以通过破解 Trac 和使用 Git 钩子来完成大部分工作,但我想知道是否有人已经/知道一些准备好的东西。
从提交消息中评论(和关闭)票证会很好,特别是如果差异与评论/关闭评论内联出现。
sha1 哈希应该自动链接到 gitweb/cigt/custom git 浏览器。
我尝试了用于 Trac 的 GitPlugin,但代码浏览器太慢了……还有其他选择吗?
svn - 为什么在 Mercurial 中分支和合并比在 Subversion 中更容易?
在 Subversion 或 CVS 中处理对分支的多次合并只是必须经历的事情之一。在 Mercurial(以及可能任何其他分布式系统)中跟踪分支和合并非常容易,但我不知道为什么。还有人知道吗?
我的问题源于这样一个事实,即使用 Mercurial,您可以采用类似于 Subversions/CVS 中央存储库的工作实践,并且一切都会正常工作。您可以在同一个分支上进行多次合并,并且您不需要无休止的带有提交编号和标签名称的纸片。
我知道最新版本的 Subversion 能够跟踪分支的合并,所以你不会遇到同样程度的麻烦,但这是他们方面的一个巨大而重大的开发,它仍然不能完成开发团队会做的所有事情喜欢这样做。
这一切的运作方式必须有根本的不同。