通过本文,你将了解如何使用原生SQL查询从数据库中高效地检索数据。...然而,在某些情况下,你可能希望直接使用SQL执行复杂查询,以获得更好的控制和性能。本文将引导你通过使用JPA中的原生SQL查询来构建和执行查询,从而从数据库中检索数据。...在这种情况下,结果列表将包含具有名为depot_id的单个字段的对象。...然后,将这些值存储在querySelectDepotId列表中。总结恭喜你!你已经学会了如何在JPA中构建和执行原生SQL查询,以从数据库中检索数据。...在需要执行复杂查询且标准JPA映射结构不适用的情况下,这项知识将非常有用。欢迎进一步尝试JPA原生查询,探索各种查询选项,并优化查询以获得更好的性能。
从文件生命周期看提交流程,首先一个文件在整个生命周期可能存在哪些状态,如下: 未追踪 untracked file 已暂存 staged file 未更新 no updated file 已更新 updated...file 还是先动手画个图,如下: image.png 上面的图以文件状态的角度出发,指出了一个文件从创建到提交文件仓库再到脱离仓库追踪的整个过程可能经历的各种状态。...在开始正文之前先介绍一下GIT查看仓库中文件状态的命令:git status。如果仓库文件有所变化,执行此命令可以查看各个变化文件状态。 未追踪 在工作目录下新创建的一个文件初始状态处于未追踪。...已暂存 在上面的1、2两段,关于未追踪和已更新,总结的是工作区文件存在的各种状态。但是在把文件提交到版本之前,还需要中间的一个过渡阶段:暂存区。 文件提交到暂存区便是已暂存状态。...更新直接提交 git commit -am "message" 可以将编辑更新直接从工作区提交仓库,即跨过暂存区。不支持删除与冲突更新和新文件的提交。
situation 用git checkout切换本地分支从b1到b2时, 如果b1的本地文件有修改, 会发生冲突。...(b1和b2不在一个commit id上) 设b1和b2都有123.txt这个文件(这2个branch下123.txt文件内容可相同可不相同); 当前在b1下, 修改了一行123.txt, 然后想git...实际的应用场景是这样:假设你有分支master和develop。master用来release版本,develop用来开发。master上release了版本1,然后develop继续开发。...如果你在develop上开发到一半的时候,release的版本1发现了bug。这个时候,你develop分支有未提交的修改,然后你需要切换到master上的版本1进行修复。...这个时候切换到master分支,肯定是不需要把develop分支上的修改带过去的。
前言 在IEDA中,使用Maven建多工程编写代码时,常常会遇到提交代码到Git上,会把非工程相关的代码或配置文件提交GitLab仓库里,确实是一件麻烦的事情。 有没有解决办法呢?...安装ignore插件 打开IDEA的settings菜单,在plugins插件中心搜索:ignore,并点击“install”按钮进行安装并重启IDEA ?...点击Generate按钮,会生成.gitignore文件,会自动填充Git所忽略的相关文件。 过滤.idea、*.iml文件 ? 过滤Maven生成的target目录等 ?...验证 从工程我们可以看到,不受Git版本控制的目录都变灰了 ? 再次提交代码时,就不会出现.iml等IDEA自动生成文件了。 ?
echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数的列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 用和不用export定义变量的区别 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----
前言 这周,我决定完成因为工作而推迟了一周的TODO事项来改进我的Git工作流程。 为了在提交的时候尽可能多的携带上下文信息,我们让提交信息包含了正在处理的JIRA编号。...在本例中,我使用了 commit-msg 钩子,它能够在当前提交信息生效前修改此信息。钩子由一个参数调用,该参数是指向包含用户输入的提交消息的文件的路径。...编写git钩子 项目已经全部设置好,所以现在可以编写git挂钩了。让我们走完所有的步骤。 检索提交消息 要做的第一件事就是从脚本传进来的参数检索临时提交文件的路径然后读取文件内容。...为了实现这一点,我们必须检索当前的工作分支,然后用正则表达式从中检索问题编号。 让我们从添加脚本调用zsh shell命令的能力开始。通过使用Processapi,脚本可以与git命令行界面交互。...这是为了不破坏诸如main或其他测试/调查分支中的工作流。 修改提交信息 为了更改提交消息,必须将脚本开头读取的文件内容(包含提交消息)写回同一路径。
可以用新内容更新索引,并且可以从存储在索引中的内容创建新提交。 索引还能够存储给定路径名的多个条目(称为“阶段”)。这些阶段用于在合并进行时保存文件的各种未合并版本。...它将会替换与键匹配的所有行(以及有可选的 value_regex)。 --add 在不更改任何现有值的情况下向选项添加新行。...--no-type 取消设置先前设置的类型说明符(如果先前已设置)。此选项请求 git config 不规范化检索到的变量。...在这种情况下,git-mailsplit 不会从以\r\n结尾的行中删除\r。可以通过从命令行提供--no-keep-cr来覆盖。...pull.ff 默认情况下,Git 在合并作为当前提交的后代的提交时不会创建额外的合并提交。相反,当前分支的提示是快进的。
如何从 master 获取一些提交?比方说,我不想执行最后一次提交,而是进行一次 rebase。...假设 master 分支是咱们的主分支,咱们不希望有选择地从它的历史记录中提取提交,这会以后引起冲突。 咱们想要 merge 或 rebase 分支的所有更改。...checkout 可能更健壮,因为它不仅允许撤消当前更改,而且还允许通过检索文件的旧版本撤消一组更改。 默认情况下,reset更适合于更改工作索引中更改的状态。因此,它实际上只处理当前的变化。...git checkout -- file;撤销对工作区修改;这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区。...git reset HEAD -- file;清空 add 命令向暂存区提交的关于 file 文件的修改(Ustage);这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化
# 覆盖添加文件的可执行位。...使用-从标准输入中读取消息 --author= # 覆盖提交作者。...# 当在命令行上给出文件时,该命令将提交指定文件的内容,而不记录已经执行的更改 【rest】 语法: git reset [-q] [] [--] …...# 在不接触工作树的情况下应用补丁 -3, --3way # 如果修补程序不能干净地应用,如果修补程序记录它应该应用的斑点的标识...# 除了在工作树中跟踪文件中搜索外,还可以在未跟踪文件中搜索 --no-exclude-standard # 通过不尊重.gitignore 机制来搜索被忽略的文件
当您的本地更改不与上游的更改冲突时,一个简单的git pull将让您继续前进。 但是,在某些情况下,您的本地更改会与上游更改发生冲突,git pull会拒绝覆盖您的更改。...--no-merged [] 仅列出其提交无法从指定提交到达的标记(如果未指定,则为HEAD),与--merged不兼容。...如果没有此选项,.git/FETCH_HEAD中的旧数据将被覆盖。 --depth= 从每个远程分支历史记录的提示限制提取到指定的提交数。...此选项会覆盖该检查。 -k --keep 保持下载的包。 --no-tags 默认情况下,指向从远程存储库下载的对象的标记将被提取并存储在本地。此选项会禁用此自动标记。可以使用远程。...在这种情况下,并且只有当您确定没有人同时获取您之前的提交 A(并开始在其上构建)时,您可以运行“git push --force”来覆盖它。
而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容。 更多内容请查看Git维基百科。 1....在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users\$USER)的 .gitconfig 文件。...这种情况下,Git 会使用它找到的每一个变量的最后一个配置。...commit message' 注意理解 -a 参数的意义 (4) 从Git仓库中删除文件: $ git rm filename (5) 从Git仓库中删除文件,但本地文件保留: $ git rm --...提交时编码不统一,或者展示时编码不统一,会出现乱码的情况。
--ita-invisible-in-index 默认情况下,“git add -N”添加的条目在“git diff”中显示为现有空文件,在“git diff --cached”中显示为新文件。...--ita-invisible-in-index 默认情况下,“git add -N”添加的条目在“git diff”中显示为现有空文件,在“git diff --cached”中显示为新文件。...此标志还会导致更新索引文件。 --cached 在不触及工作树的情况下应用补丁。而是使用缓存数据,应用补丁,并将结果存储在索引中,而不使用工作树。这意味着--index。...--allow-empty 在默认情况下,挑选空提交将失败,表明需要显式调用git commit --allow-empty。此选项会覆盖该行为,允许在提取中自动保留空提交。...--keep-empty 在结果中保留不改变其父项的任何提交。 另见下面的不兼容的选项。 --allow-empty-message 默认情况下,使用空消息进行的 rebasing 提交将失败。
默认情况下,每个输出文件从 1 开始按顺序编号,并使用提交消息的第一行(为路径名安全性进行按摩)作为文件名。使用--numbered-files选项,输出文件名将只是数字,而不会附加提交的第一行。...将指定的提交或树对象提交给 SVN。这取决于您导入的获取数据是最新的。这使得在提交 SVN 时绝对不会尝试进行修补,它只是用树中指定的文件或提交覆盖文件。...reset 命令允许前端为现有分支发出新的from命令,或者从现有提交创建新分支而不创建新提交。...否则该命令对当前导入没有影响;其主要目的是检索可能位于快速导入内存但无法从目标存储库访问的 blob。...如果不至少进行一次“修复”文件以匹配标记内容的提交,则无法在 Git 中导入这些标记。
除其他外,这对于使用git diff显示此类文件的未分级内容并使用git commit -a提交它们非常有用。 --refresh 不添加文件,而只刷新它们在暂存区中的 stat()信息。...-F --file= 从给定文件中获取提交消息。使用 - 从标准输入读取信息。 --author= 覆盖提交作者。...希望引导参与者提供有关在消息中以什么顺序写入内容的一些提示的项目可以使用此机制。如果用户在不编辑消息的情况下退出编辑器,则中止提交。当通过其他方式给出消息时,例如,这没有效果。使用-m或-F选项。...… 在命令行上提供文件时,该命令将提交指定文件的内容,而不记录已暂存的更改。这些文件的内容也会在之前的演出之上进行下一次提交。...在这种情况下,不需要新的提交来存储组合的历史记录;相反,HEAD(以及索引)更新为指向命名提交,而不创建额外的合并提交。 使用--no-ff选项可以抑制此行为。
# 对同一个文件多次更改,建议分开提交 git add -p # 将指定文件从工作区删除,并将本次删除添加到暂存区 git...] 代码提交 # 将暂存区中的文件提交到代码仓库 git commit -m [message] # 将指定的文件从暂存区中提交到仓库 git commit [file1] [file2]...将指定文件从某个提交还原到暂存区和工作区 git checkout [commit] [file] # 将暂存区中的所有文件还原到工作区 git checkout...git reset --hard # 重置暂存区,指向指定的某次提交,工作区的内容不会被覆盖 git reset [commit] # 重置暂存区和工作区中的指定文件,并与指定的某次提交保持一致,...工作区的内容会被覆盖 git reset --hard [commit] # 将 HEAD 重置为指定的某次提交,保持暂存区和工作区的内容不变 git reset --keep [commit] #
一、版本回退前置知识 在操作前需明确三个核心概念:工作区 vs 暂存区 vs 仓库 区域 本质 操作指令 场景举例 工作区 你正在编辑的代码文件 直接修改文件 在 UserService.java 中新增代码...(麻烦不推荐) 总结 Soft 回退:当你只想撤回 commit,但不影响文件内容,适用于你希望修改提交内容或者重新提交时使用(推荐) Mixed 回退:当你想撤销提交并清理暂存区,但保留文件修改...) Keep 回退:当你希望恢复到某个提交的版本,但又不丢失本地修改时使用(恢复版本的文件的本地内容需要手动选择要还是丢,麻烦不推荐) 1.4、强制推送远程仓库 回退后本地仓库版本低于远程,需执行强制推送...在强制推送远程仓库前,都可以通过更新代码恢复上面的版本回退 方式一(不推荐) git push --force 是强制推送命令,它会将本地分支的内容强行推送到远程仓库,覆盖远程分支的历史记录。...使用此命令时,如果远程分支的提交历史与本地分支不同,推送操作仍会进行,并且不会进行任何检查,可能会丢失远程仓库中的更改。因此,这个命令需要小心使用,尤其在多人协作的情况下,可能会覆盖他人的更改。
git diff git skip-worktree git assume-unchanged 对于单个文件应用 对应文件夹应用 不包含子文件夹的方式 包含子文件夹的方式 git rename...stash git update-index --no-assume-unchanged /path/to/file 重新开始跟踪某个特定文件 对应文件夹应用 不包含子文件夹的方式 这个方式不包含子文件夹...commit 之后就可以 continue, 如果要退出 cherry-pick, 那么就是用 --abort git config Git Config 的检索流程: Git 目录下的配置文件.../gitconfig 文件, 对应参数是 --system 命令 功能 注释 git config --list 查看相关配置 本地配置的位置是在 .git/config, Global 的配置位置在.../schacon/grit.git 从服务器上将代码给拉下来 git config --list 看所有用户 git ls-files 看已经被提交的 git rm [file name] 删除一个文件
# 从栈上删除储藏 $ git stash drop stash@{2} # 应用后立即删除 $ git stash pop (1)创造性的储藏 不储藏任何你通过 git add 命令已暂存的东西...如果你在 git blame 后面加上一个 -C,Git会分析你正在标注的文件,并且尝试找出文件中从别的地方复制过来的代码片段的原始出处。...# good标识测试ok $ git bisect good # bad标识测试error $ git bisect bad 注意:在标识检索出来的提交是否有问题时,git会返回给我们类似“Bisecting...感慨:通过每次手动测试检索出来的提交是否正确,是不现实的,工作量太大。但是通过自动化测试脚本会很爽的。...注意:你的测试脚本必须约定:在项目是正常的情况下返回0,在不正常的情况下返回非0 (3)总结 当你知道问题是在哪里引入的情况下文件标注可以帮助你查找问题; 如果你不知道哪里出了问题,并且自从上次可以正常运行到现在已经有数十个或者上百个提交
默认情况下,git fetch取回所有分支(branch)的更新。...$ git push -f : (强制提交,非自己的分支强烈不建议使用) 六、从远程pull一个本地不存在的分支的方法?...七、git的选择性合并 具体操作步骤: 假如在当前的A分支上要合并B分支的某一个文件 先切回到A分支 然后执行 git checkout B xx.php xx.php直接会覆盖A分支上的xx.php文件...(注意会直接将文件覆盖,并不会合并文件,比如在A的xx.php有修改,在B的xx.php有修改,执行上述操作会直接把B的xx.php覆盖A,若想解决用下面的步骤) 先在A分支的基础上建一个 A-temp...分支,拿这个A-temp分支和B分支合并,之后切回到A分支,然后把A-temp分支的文件覆盖A分支相对应的文件即可。
领取专属 10元无门槛券
手把手带您无忧上云