假设我在branch-1
上工作并编译。我的工作树在各种目录中填充了一堆二进制文件。
现在我想切换到branch-2
,但在我的工作树中已经编译了二进制文件(具有与我的工作树完全相同的branch-2
提交版本)。如果我只运行git checkout branch-2
,那么二进制文件仍然在工作树中,这是一个令人困惑的情况,因为HEAD指向branch-2
并且我有来自branch-one
的二进制文件。
在保留编译文件的同时切换分支的最佳过程是什么,更确切地说:
branch-1
并编译branch-2
(不再有来自工作树中branch-1
的二进制文件),编译一组新的二进制文件branch-1
并重新开始处理branch-1
二进制文件(无需重新编译)branch-2
并重新开始处理branch-2
- 生成的库.. 答案 0 :(得分:1)
听起来你想要的是multiple worktrees。
如果您不想在切换分支时重新编译,则需要将二进制文件存储在某处。将它们存储在Git某处可能不是一个好主意,因此它们应该存储在常规文件系统中;最简单的方法就是使用不同的目录树。
有几个原因将二进制文件存储在Git提交中并不是一个好主意(并且stashes是一种提交类型):
git stash drop
或.gitignore
来摆脱存储是一致的,那么Git垃圾收集器最终将清理旧的提交,但它们仍将是一段时间。将它们放在常规提交中会更糟糕:膨胀会永远存在,它们很容易与编译后的文件失去同步,如果有人想要它们,它们将是无用的为不同的平台编译你的程序。git status
文件中是标准的。这样,Git会假装他们不在那里,并且他们不会妨碍.gitignore
调用等等。但是,忽略文件的一部分意味着Git默认不会存储它们,所以如果您经常将已编译的文件存放在存储中,则可能不希望使用.gitignore
。git stash
中,意味着很容易将它们置于常规提交中。如果你小心的话,你可以避免这种情况,但这是一个容易犯的错误,一旦你做了,你就会遇到在常规提交中使用二进制文件的所有问题。使用$('.hollow-form-01 form.wpcf7-form').on('wpcf7submit', function() {
alert('submitted');
});
的主要优点是它适用于2.6之前的Git版本。