我在项目中有非常的嵌套目录,而且我是一个懒惰的程序员。假设我有一个文件名EventEditor.foo我想暂存我的文件,不管它是在根目录还是./src/holy/sweet/mother/of/baby/raptor/jesus/this/is/a/long/hiearchy/EventEditor.foo我的目标是全部,“YoGit,添加EventEditor”然后砰的一声。它让我只需要输入类似gitadd*EventEdi*的内容即可。这可能吗?还是我在做白日梦? 最佳答案 如果您想在使用gitadd时递归地匹配一个glob,启
我经常使用我的IDE或通过命令行(而不是通过gitmv)在git存储库中移动文件。因此,我最终在下一次提交时删除了几个未暂存的文件,如下所示:#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)##modified:test.html##Changesnotstagedforcommit:#(use"gitadd/rm..."toupdatewhatwillbecommitted)#(use"gitcheckout--..."todiscardchangesinworkingdirectory)##d
我经常使用我的IDE或通过命令行(而不是通过gitmv)在git存储库中移动文件。因此,我最终在下一次提交时删除了几个未暂存的文件,如下所示:#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)##modified:test.html##Changesnotstagedforcommit:#(use"gitadd/rm..."toupdatewhatwillbecommitted)#(use"gitcheckout--..."todiscardchangesinworkingdirectory)##d
这个问题:Canyouinteractwiththeindex/stagingareawithTortoiseGit?认为TortoiseGit的主要功能不是消除对git命令行的需要,总的来说,我同意。但是,git-gui有一个我经常使用的功能(可能是为了弥补糟糕的工作流程):能够从当前补丁中选择性地暂存或取消暂存大块或行,以便将一堆散布的更改拆分为连贯的更改集在多次提交中。命令行替代方案(对我来说,无论如何)有点笨拙,因此,理想情况下,我想在TortoiseGit中进行相同的选择性提交。到目前为止,我还没有找到一种方法来做到这一点,我怀疑,从另一个问题的答案来看,这是不可能的。谁能证
这个问题:Canyouinteractwiththeindex/stagingareawithTortoiseGit?认为TortoiseGit的主要功能不是消除对git命令行的需要,总的来说,我同意。但是,git-gui有一个我经常使用的功能(可能是为了弥补糟糕的工作流程):能够从当前补丁中选择性地暂存或取消暂存大块或行,以便将一堆散布的更改拆分为连贯的更改集在多次提交中。命令行替代方案(对我来说,无论如何)有点笨拙,因此,理想情况下,我想在TortoiseGit中进行相同的选择性提交。到目前为止,我还没有找到一种方法来做到这一点,我怀疑,从另一个问题的答案来看,这是不可能的。谁能证
我添加了一个新文件F1并更改了另一个文件F2但随后执行了gitreset--hardHEAD^并且我丢失了对文件。有什么方法可以让他们回来吗?我确实在这里看过一个相关的问题:HowcanIundogitreset--hardHEAD~1?但是,该问题假定该人已经完成了Git提交。 最佳答案 您可以(通过一些工作)在最后一个“gitadd”恢复文件状态。你可以使用$gitfsck--cache--no-reflogs--lost-found--danglingHEAD然后检查“.git/lost-found/other”目录中的文件。
我添加了一个新文件F1并更改了另一个文件F2但随后执行了gitreset--hardHEAD^并且我丢失了对文件。有什么方法可以让他们回来吗?我确实在这里看过一个相关的问题:HowcanIundogitreset--hardHEAD~1?但是,该问题假定该人已经完成了Git提交。 最佳答案 您可以(通过一些工作)在最后一个“gitadd”恢复文件状态。你可以使用$gitfsck--cache--no-reflogs--lost-found--danglingHEAD然后检查“.git/lost-found/other”目录中的文件。
如何获取与.gitignore文件中的规则匹配但过去已暂存或提交的那些文件的列表? 最佳答案 ls-files的文档写得不是很清楚,但似乎以下简单的别名可以完成这项工作:gitconfig--globalalias.showtrackedignored"ls-files-i--exclude-standard"上面的命令创建了一个名为showtrackedignored的别名。要使用,请运行:gitshowtrackedignored它将列出当前目录和子目录中所有被跟踪但如果未被跟踪将被忽略的文件。gitls-files中的错误不幸
如何获取与.gitignore文件中的规则匹配但过去已暂存或提交的那些文件的列表? 最佳答案 ls-files的文档写得不是很清楚,但似乎以下简单的别名可以完成这项工作:gitconfig--globalalias.showtrackedignored"ls-files-i--exclude-standard"上面的命令创建了一个名为showtrackedignored的别名。要使用,请运行:gitshowtrackedignored它将列出当前目录和子目录中所有被跟踪但如果未被跟踪将被忽略的文件。gitls-files中的错误不幸
我正在尝试设置Git以暂存我的网站,以便我可以gitpull使当前版本在本地运行,然后gitpush进行推送对远程服务器的更改。我已经设置好它以我想要的方式工作,但是在我推送之后,我必须手动运行gitcheckout-f或gitreset--hardHEAD在远程服务器上。我试过将它们放入shell脚本中作为服务器上的接收后Hook,但它似乎没有任何效果。我知道脚本正在运行,因为我在推送后看到“更改已推送到服务器”。这是接收后Hook:#!/bin/shgitreset--hardHEADecho"Changespushedtoserver." 最佳答案