草庐IT

git - 如何编辑暂存文件?

我使用补丁模式添加了一个文件。花了很长时间才在这次提交中添加我想要的更改。但后来我意识到我犯了一个错误。这次提交中有一段代码我不想要。有没有一种方法可以在不更改我的工作目录并且不重复gitadd-upsomefile的漫长过程的情况下编辑暂存的更改集? 最佳答案 是的,只需使用gitreset-p有选择地取消补丁。 关于git-如何编辑暂存文件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

git - 使用 git add 暂存已删除的文件

我运行了gitstatus并看到了几个被修改的文件和几个被删除的文件。是否可以仅暂存已删除或仅已修改的文件? 最佳答案 如果你混合了修改和删除的文件,并且只想将删除的文件暂存到索引中,你可以使用gitls-files作为过滤器。gitls-files--deleted|xargsgitadd如果您只想将其应用于文件树的一部分,请将一个或多个子目录作为参数传递给ls-files:gitls-files--deleted--lib/foo|xargsgitadd要仅对修改后的文件执行相同操作,请使用--modified(-m)选项而不是

git - 在 'git rm -rf' 之后恢复暂存但未提交的文件

在我的本地机器上,我从文件夹中删除了文件。gitinitgitadd--all然后我写了(不要问我,为什么!:))gitrm-rf我还没有promise。现在我的项目中有空文件夹。在.git文件夹中有包含53Mb文件的objects。如何恢复我的文件?我试过像DrillDisc和Stellar这样的程序,但没有找到我的文件。而且我无法从GIT回滚。如何恢复丢失的文件? 最佳答案 (更新)请改用gitfsck,它是一个内置命令,用于检索您曾经添加到git存储库的文件。gitfsck--lost-found--unreachable命令

git - 为什么 "git reset HEAD"不能撤消我未提交的、未暂存的更改?

我以前能够通过执行“丢弃”功能通过SourceTree撤消更改,该功能在后台生成此命令:git-cdiff.mnemonicprefix=false-ccore.quotepath=falsereset-qHEAD--myproj.csprojgit-cdiff.mnemonicprefix=false-ccore.quotepath=falsecheckoutHEAD--myproj.csproj突然这行不通了。我做了丢弃,没有错误发生,刷新View,但文件仍然是“修改过的”。然后我尝试在命令行中执行相同的操作,结果相同:c:\myproject>gitresetHEADUnstag

git - 为什么 'git stash apply' 会暂存我的更改?

我进行更改,然后我gitstash然后我gitstashapply我的问题是为什么在我gitstashapply之后,我的更改变成了“暂存”?也就是说,如果我执行gitdiff,我将看不到任何东西,如果我执行gitdiff--cached?,我只会看到我的不同之处是否可以“取消暂存”我通过gitstashapply命令暂存的更改?是否有任何git命令基本上可以让我“备份我的更改,将其重置到HEAD并将我的备份复制回来”?我认为gitstash然后gitstashapply是那个命令,但它是如何“暂存”我的所有更改的?是否有任何等效项可以让我gitstashapply而无需暂存我的更改部

git - 本地/暂存/生产服务器堆栈 + Git 的最佳工作流程

我希望merge一个允许我执行以下操作的Web开发工作流程:在本地开发/测试模拟生产服务器(许多子域,一些mysql数据库)在台式机和笔记本电脑之间保持同步,以实现移动开发轻松推送本地->暂存轻松push暂存->生产在生产服务器上轻松进行实时编辑(偶尔需要进行非常小的内容更新、拼写错误更改等。现在我花了很多时间进行小的编辑,将其推送到暂存,然后再推送到生产,这需要一段时间对于小事。)我也是Git新手。我已经开始在我的个人项目中使用Git进行测试,但是我继承的项目(使用生产/暂存环境)到目前为止还没有使用任何版本控制。问题:我如何才能轻松地将已建立的大型项目适应本地环境(XAMPP)?如

git - 取消暂存所有文件并放弃 merge

我正在运行一个简单的merge并期望没有冲突,然后我运行了gitmergemy_dev_branch然而,我遇到了一个看起来很难解决的merge冲突,这让我觉得我对我的分支历史并不清楚。我不想解决冲突,而是想放弃merge并返回到之前的位置。两个问题:我认为我可以通过运行gitcheckoutHEAD来清理暂存区的想法是否正确?在每个文件上thisquestion这相当于放弃merge?有没有一种方法可以在一个命令中完成此操作? 最佳答案 试试gitmerge--abort。方便,嗯?

git - 锁定一个分支,以便它不能被暂存/提交? (仅 merge/等)

我有一个我很喜欢的master/develop分支系统,但它有一个基本规则。develop或master没有提交,只有merge。这很棒,但最近我不小心在我的开发分支上做了一些更改/提交,这让我很烦tar。我考虑将这些提交的所有权从develop转移到另一个已经存在的分支(我们将其称为work),这是我应该一直致力于的分支首先,但我决定放过这个。相反,我想从一开始就解决这个问题。如何锁定一个分支,以便提交对于传统的正常更改根本不起作用?例如,如果您在“锁定”分支上进行了更改,则您不能gitadd也不能gitcommit-a。我想从技术上讲我要求锁定分段,但你明白了。对此有什么想法吗?还

git - 如何使 git stash 包含尚未暂存的新文件?

我不是git的专家,但我已经使用它几年了。最近我注意到一些与stash有关的奇怪行为。它似乎只是部分地为我工作。例如,今天我试图stash4个未提交的更改。1个文件被添加到存储中,其余3个作为未提交的更改保留。尝试了几次,在第一次尝试后我只是得到“没有要保存的本地更改”,但状态仍然显示3个未提交的更改。然而,巧合的是,我发现当我第一次暂存以前不可存储的更改时,它们将被正常存储。我玩过,这是可重复的:如果所有更改都未提交,则只有一个更改被stash。如果“问题”更改已上演,则所有更改都将被stash(无论“好”更改是否已上演,它始终会被stash)。这是错误还是我做错了什么?我正在使用G

git - 刷新暂存文件

在git中,是否有任何(简单的)方法来修改索引,以便只添加对已在其中的文件的更改?听起来有点复杂,但我想实现的很简单。假设我的索引看起来像这样(略微剥离了gitstatus输出):#Changestobecommitted:#modified:A#modified:B##Changedbutnotupdated:#modified:B#modified:C##Untrackedfiles:#DB的一些更改在索引中,一些不在索引中。C根本没有暂存。如何在不添加C的情况下更新索引中的B(暂存其未暂存的更改)?即我希望索引看起来像这样:#Changestobecommitted:#modif