相关疑难解决方法(0)

如何撤消Git中最近的提交?

我不小心将错误的文件提交给Git,但我还没有将提交推送到服务器.

如何从本地存储库中撤消这些提交?

git version-control undo pre-commit git-commit

2万
推荐指数
103
解决办法
826万
查看次数

如何修改现有的,未删除的提交?

我在提交消息中写了错误的东西.或者,我忘了包含一些文件.

如何更改提交消息/文件?提交尚未被推送.

git git-amend git-commit git-rewrite-history

7669
推荐指数
27
解决办法
246万
查看次数

Git中HEAD ^和HEAD~之间有什么区别?

当我在Git中指定一个祖先提交对象时,我在HEAD^和之间感到困惑HEAD~.

两者都有像" HEAD^3和"这样的"编号"版本HEAD~2.

它们看起来与我非常相似或相同,但是波浪号和插入符之间有什么区别吗?

git

688
推荐指数
15
解决办法
15万
查看次数

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

我希望在我的项目的第一次提交中更改某些内容而不会丢失所有后续提交.有没有办法做到这一点?

我不小心在源代码中的评论中列出了我的原始电子邮件,我想改变它,因为我从机器人索引GitHub收到垃圾邮件.

git rebase git-filter-branch

476
推荐指数
3
解决办法
12万
查看次数

学习Vim有什么好处?

作为一名程序员,我在键盘上花了很多时间,而且在过去的12年里,我或多或少都在做.如果有一些我从未习惯过的东西,那么由于一些最常见的代码编辑任务,我在编码过程中会遇到这些烦人且几乎无意识的持续微中断.像从不同的行(或甚至同一行)进行简单的复制和粘贴,或者从当前位置向上或向下移动1或2行所需要的东西需要太多的输入或涉及使用箭头键......它会得到当我想进一步移动时更糟糕 - 我最终使用了鼠标.现在想象一下这个场景,但在笔记本电脑上.

我一直都在考虑学习VIM,但掌握它所需的时间总是让我想退后一步.

我想听听那些已经学会了它的人,以及它最终成为你不能没有的东西之一.

在工作中,我使用VS2008,C#和R#,它们使编辑代码比以往更快更容易,但即便如此,我认为我可以享受不必使用鼠标.

甚至没有箭头键.

vim editor

469
推荐指数
13
解决办法
23万
查看次数

如何将更改的文件添加到Git中的旧(不是最后)提交

我在过去一小时内改变了一些事情,并一步一步地提交了它们,但我刚刚意识到我忘了在一些提交之前添加一个已更改的文件.

日志看起来像这样:

GIT TidyUpRequests u:1 d:0> git log 
commit fc6734b6351f6c36a587dba6dbd9d5efa30c09ce 
Author: David Klein <> 
Date:   Tue Apr 27 09:43:55 2010 +0200

    The Main program now tests both Webservices at once

commit 8a2c6014c2b035e37aebd310a6393a1ecb39f463 
Author: David Klein <>
Date:   Tue Apr 27 09:43:27 2010 +0200

    ISBNDBQueryHandler now uses the XPath functions from XPath.fs too

commit 06a504e277fd98d97eed4dad22dfa5933d81451f 
Author: David Klein <> 
Date:   Tue Apr 27 09:30:34 2010 +0200

    AmazonQueryHandler now uses the XPath Helper functions defined in XPath.fs

commit a0865e28be35a3011d0b6091819ec32922dd2dd8 <--- changed file …
Run Code Online (Sandbox Code Playgroud)

git

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

如何使用Visual Studio代码作为Git的默认编辑器

在命令行中使用git时,我想知道是否可以使用Visual Studio Code作为默认编辑器,即在创建提交注释时,以及从命令行查看文件的差异.

我明白用它做合并是不可能的(至少在一分钟之内)但是有没有人知道是否有可能用它来查看差异,如果有的话,需要什么命令行选项.gitconfig文件来实现这一目标?

更新1:

我尝试过类似于我过去Notepad ++所做的方法,即

#!/bin/sh

"c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
Run Code Online (Sandbox Code Playgroud)

用过:

#!/bin/sh

"C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*"
Run Code Online (Sandbox Code Playgroud)

但这会导致错误消息:

C:\temp\testrepo [master +1 ~0 -0]> git commit
[8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler
Aborting commit due to empty commit message.
C:\temp\testrepo [master +1 ~0 -0]>
Run Code Online (Sandbox Code Playgroud)

代码打开正确,具有预期的内容,但它没有等待响应,即单击保存并关闭窗口以返回提示.

更新2:

我刚从一位致力于VSCode的开发人员那里听到了回复.看起来目前不支持此功能:-(

https://twitter.com/IsidorN/status/595501573880553472

如果您有兴趣看到添加此功能,您可能需要考虑在此处添加您的投票:

http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools

更新3:

我已经可靠地获悉 VSCode团队已经接受了这个功能,所以我期待将来的版本包括它.

更新4:

感谢下面的@ f-boucheros评论,我已经能够让VS Code作为提交注释,rebase等的默认编辑器.我仍然希望看到是否可以将它用作diff工具.

更新5:

根据问题的接受答案,现在可以使用V1.0版本的代码.

git visual-studio-code

312
推荐指数
6
解决办法
12万
查看次数

在Git中编辑root提交?

有办法从以后的提交中更改消息:

git commit --amend                    # for the most recent commit
git rebase --interactive master~2     # but requires *parent*
Run Code Online (Sandbox Code Playgroud)

如何更改第一次提交(没有父级)的提交消息?

git git-rebase git-amend git-commit git-rewrite-history

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

如何修改旧的Git提交?

我做了3个git提交,但没有被推送.如何修改不是最新的旧版本(ddc6859af44)和(47175e84c)?

$git log
commit f4074f289b8a49250b15a4f25ca4b46017454781
Date:   Tue Jan 10 10:57:27 2012 -0800

commit ddc6859af448b8fd2e86dd0437c47b6014380a7f
Date:   Mon Jan 9 16:29:30 2012 -0800

commit 47175e84c2cb7e47520f7dde824718eae3624550
Date:   Mon Jan 9 13:13:22 2012 -0800
Run Code Online (Sandbox Code Playgroud)

git version-control git-rewrite-history

148
推荐指数
5
解决办法
10万
查看次数

修改不是先前提交的提交

我经常会有如下工作流程:

  1. 提交对一组文件的更改
  2. 提交对不同文件组的更改
  3. 意识到我错过了第一次提交中的一些更改
  4. 诅咒

我无法使用,git commit --amend因为它不是我需要更改的最新提交.在不触及第二次提交的情况下,将更改添加到第一次提交的最佳方法是什么?

git

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