Questions tagged «git»

用于Emacs对分布式版本控制系统Git的支持。Emacs的“版本控制”功能除Git外还支持许多系统。其他扩展,例如`Magit`,也提供了广泛的Git支持。因此,除了`git`之外,还要使用其他标签来解决Git相关问题。

1
Magit-撤消上一次提交-历史操作
这个StackOverflow问题具有撤消最后一次提交的最佳解决方案/方法。 我是在几周前开始使用Magit的,在浏览了所有文档之后,我仍然没有确定/最佳的方法来撤消错误提交的更改。 例如: 对于撤消和重做,我们可以使用上一次提交: $ git commit -m "Something terribly misguided" $ git reset HEAD~ << edit files as necessary >> $ git add ... $ git commit -c ORIG_HEAD # To keep the same commit message 使用Magit重现此过程的最佳工作流程应该是什么?
12 magit  git 

1
射弹不会显示项目中的所有文件
在访问了git存储库中的文件后,Projectile承认我的git存储库已作为项目存在,但仅列出一个文件(当前文件)作为项目的一部分。当我访问项目中的其他文件时,它们一次成为项目的一部分。 如何在Projectile中创建项目,以使他们立即知道项目中的所有文件? 到目前为止,我发现的所有教程都假定您正在访问现有项目中的文件,并且Projectile知道该项目包含的文件。 更新资料 设置弹丸时,我在弹丸文档中提出了以下建议: 快取 由于索引大型项目并不完全很快(尤其是在Emacs Lisp中),因此Projectile支持缓存项目文件。默认情况下,无论何时启用本机索引,都将启用缓存。 要无条件启用缓存,请使用以下代码段: (setq projectile-enable-caching t) 由于我偶尔会浏览一些大型项目,因此我将其添加到了init文件中,希望它可以提高性能。我不知道Projectile如何管理其缓存,但是当我假设我第一次访问项目时,将浏览项目树,并将所有项目文件填充到缓存中。看来我的假设是错误的。 设置projectile-enable-caching为之后nil,Projectile可以在我的项目中找到所有文件。感谢alexurba的回答和后续评论,我得以找到问题所在。
12 git  projectile 

1
如何自动加密orgmode文件?
我有一个git存储库,其中存放一些组织模式文件。其中一些具有私有性质,某些不受信任的第三方可以访问git存储库所在的服务器。那就是为什么我要加密私人组织文件。 我要实现的目标如下:首先,文件已加密。这可以是带有密码的对称密钥,也可以是我的GnuPG密钥。当我打开文件时,Emacs要求输入密码并打开文件(如果pw输入正确)。我现在可以像处理任何其他组织文件一样使用该组织文件。当我保存或关闭文件时,应再次对其进行加密。git commit也应该被加密。 我该如何使用GNU / Emacs做类似的事情?

1
如何设置上游分支以将本地分支推送到magit?
据我所记得,如果我在一个分支上工作,例如,my-feature-branch我曾经能够使用magit-status菜单从菜单中执行此操作P P,然后从origin/my-feature-branch顶部的列表中选择远程分支。效果很好。 最近,在讨论中,我可以做一些类似的事情P -u e(打开magit-push-popup,设置--set-upstream标志并e在其他地方使用),类似地,我可以从以开头的分支列表中进行选择origin/my-feature-branch。这对我也很好。但是,即使在最近,这种方法也不再起作用,而且我还无法找出设置上游分支的最佳方法。 当我使用P e第一个选项将分支推送到时origin/my-feature-branch,这几乎总是我想要的。但是,它没有设置origin/my-feature-branch为本地分支的上游。使用P u允许我选择上游分支,但origin/my-feature-branch不在列表中,而且我必须在origin/my-feature-branch不使用制表符补全的情况下进行键入(我知道这并不难,但是它容易出现用户错误,并且比命令行要慢)。 这是现在设置上游分支的唯一方法,还是我错过了什么?我查看了与此问题相关的其他讨论和文档,但是我发现的所有来源似乎都已过时。
11 magit  git 

8
magit-push在Windows上挂起
我在Windows上使用GNU Emacs,无法magit-push将本地更改推送到远程存储库。不论是使用SSH还是HTTPS访问远程存储库,都会发生这种情况。我需要做些什么才能使magit-pushWindows在Linux机器上无缝(或至少接近)地工作? 我在*Messages*缓冲区中看到的是 Running c:/Program Files (x86)/Git/bin/git.exe push -v origin master:refs/heads/master *magit-process*缓冲区中或多或少都显示相同的内容。没有什么比这有用的了。我可以从命令行进行git push,但是它确实要求输入我的ssh密钥的密码。可能是问题所在吗?我曾尝试用Pageant(PuTTY的密钥代理)加载密钥,但这似乎没有什么不同。 如果有帮助,我已经安装了Cygwin,并且对强制Emacs使用Cygwin的可执行文件的解决方案感到满意。

1
如何很好地处理与视线模式兼容的git diff?
我在组织模式下visual-line-mode打开稿子,将其打开。从物理上讲,我的一段只是一条软包装的线。 在这种情况下,当我尝试git diff(magit)来查看所做的更改时,所有这行(段落)都标记为已更改。我无法简单地更改本段的哪一部分。 我认为应该有一些解决此问题的解决方案,但我无法从网站上找到任何答案。谁能分享您的好解决方案?
9 magit  git 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.