小编Nic*_*kin的帖子

我将使用git-worktree做什么?

在Git-worktree上阅读了Github的帖子.他们写:

假设您正在一个名为的分支上的Git存储库中工作feature,当用户报告高紧急性错误时master.首先,您创建一个带有新分支的链接工作树,hotfix相对于主分析签出[...]您可以修复错误,推送修补程序,并创建拉取请求.

当我在一个名为feature的分支上工作并报告master中的一些高紧急性bug时,我通常会隐藏我正在处理的任何内容并创建一个新的分支.当我完成后,我可以继续工作.这是一个非常简单的模型,我多年来一直这样做.

另一方面,使用git-worktree有其自身的局限性:

例如,不允许同时在两个链接的工作树中检出相同的分支,因为这将允许在一个工作树中提交的更改使另一个工作树不同步.

为什么我会为已经解决的问题选择更复杂的工作流程?

是否有任何关于git-worktree事先无法完成的事情,这证明了这一全新的复杂功能?

git git-worktree

180
推荐指数
9
解决办法
5万
查看次数

Git:如何从索引中删除文件而不删除任何存储库中的文件

当你使用

git rm --cached myfile
Run Code Online (Sandbox Code Playgroud)

它不会从本地文件系统中删除,这是目标.但是,如果您已经对文件进行了版本化并提交,将其推送到中央存储库,并在使用该命令之前将其拉入另一个存储库,它将从该系统中删除该文件.

有没有办法从版本控制中删除文件而不从任何文件系统中删除它?

编辑:澄清,我希望.

git version-control gitignore git-rm

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

仅添加未经跟踪的文件

我发现在Git中非常有用的命令之一就是git add -u将除了未跟踪文件之外的所有文件抛出到索引中.那有反过来了吗?在过去的几个月里,我经常发现自己处于这样一个位置:我交互式地为索引添加了一些更新,我希望在提交之前将所有未跟踪的文件添加到该索引中.

有没有办法将未跟踪的文件添加到索引而不单独识别它们?我在帮助文档中没有看到任何明显的东西,但也许我错过了它?

谢谢.

git git-add

147
推荐指数
7
解决办法
8万
查看次数

使用python以相反的顺序读取文件

如何使用python以相反的顺序读取文件?我想从最后一行到第一行读取一个文件.

python reverse file

112
推荐指数
7
解决办法
12万
查看次数

在GitHub上完全从Git repo和remote远程删除文件

我不小心添加了一个图像文件夹并提交.然后,我又做了一次提交.然后我git rm -f ./images再次使用并提交了这些文件.

现在,我在那个分支(master)中做了很多提交.在我的HEAD中,我没有该./static/images文件夹.

因此,我的回购规模增加了很多.如何完全删除这些斑点?我想从我的远程GitHub仓库中删除它.

git git-remote git-filter-branch git-rm

77
推荐指数
2
解决办法
7万
查看次数

在Git仓库中恢复已删除的文件夹

我删除了文件夹中的所有内容,文件夹为空.我的远程仓库里还有一份副本.但是,当我做了一个git pull它没有放回已删除的文件是不是应该这样做?

所以我做了一些研究,发现你可以通过这样做来恢复文件 git checkout <revision> -- <name of file>

但这只适用于文件.

如何检索目录中的所有文件?

git git-checkout

76
推荐指数
6
解决办法
7万
查看次数

`git add .`和`git add -u`有什么区别?

我假设两者都以同样的方式工作.两者都将每个文件添加到索引.但我似乎错了.

  • git add .和之间有什么区别git add -u

git git-add

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

Git的包文件是否是快照而不是快照?

Git与大多数其他版本控制系统之间的主要区别之一是,其他人倾向于将提交存储为一系列增量 - 一次提交与下一次提交之间的更改集.这似乎是合乎逻辑的,因为它是存储提交的最小可能信息量.但是,提交历史记录越长,比较修订范围所需的计算就越多.

相比之下,Git 在每个版本中存储了整个项目完整快照.这并没有使回购规模显着每个提交成长的原因是项目中的每个文件存储在Git的子目录中的文件,名为对其内容的哈希值.因此,如果内容未更改,则散列未更改,并且提交仅指向同一文件.还有其他优化.

所有这些对我来说都是有意义的,直到我偶然发现有关包文件的信息,Git定期将数据放入其中以节省空间:

为了节省空间,Git使用了packfile.这是一种格式,其中的Git只会保存在第二个文件已经改变,它的指针是类似文件的一部分.

这基本上不会回到存储增量吗?如果没有,它有什么不同?这如何避免Git遇到其他版本控制系统遇到的相同问题?

例如,Subversion使用增量,回滚50个版本意味着撤消50个差异,而使用Git,您可以获取适当的快照.除非git还在packfiles中存储50个差异...是否有一些机制说"在经过一些少量的增量后,我们将存储一个全新的快照",这样我们就不会堆积太大的变更集?Git还有什么可以避免增量的缺点?

git version-control internals

65
推荐指数
2
解决办法
1万
查看次数

git rm --cached file vs git reset file

我正在努力学习Git.我很困惑

git rm --cached file
Run Code Online (Sandbox Code Playgroud)

git reset file
Run Code Online (Sandbox Code Playgroud)

这两个命令似乎都将文件从暂存区域转移到非暂存区域.命令有何不同?

git git-reset git-rm

61
推荐指数
1
解决办法
9万
查看次数

配置IntelliJ以在控制台窗口中打印标准输出,但也将其保存到文件

如何配置IntelliJ以将应用程序的标准输出捕获到文件中,但仍将其显示在标准控制台窗口中?

intellij-idea

57
推荐指数
2
解决办法
3万
查看次数