那里,可以通过 git reset HEAD^ 做一次针对那个提交的混合重置, 实际上将会撤消那次提交并将修改的文件未暂存。...stash你的变更,你只需简单地运行下面的命令- git stash 希望检查stash列表,你可以运行下面的命令: git stash list 如果你想要解除stash并且恢复未提交的变更,你可以进行...如果你只想留有余地进行apply stash,你应该给apply添加特定的标识符: git stash apply stash@{2} 丢弃stash区的内容 git stash drop 如果想应用stash...这种情况下,你可以在 add 命令中加上 -p 参数 git add -p [file_name] 我们来演示一下在 file_name 文件中添加了3行文字,但只想提交第一行和第三行。...正如你所看到的,我们添加了第一行和第三行而忽略了第二行。之后你可以查看仓库状态之后并进行提交。 Cherry Pick 我把最优雅的Git命令留到了最后。
可以多次指定此选项。 如果源和目标中都存在一行,只存在一次,并以此文本开头,则此算法会尝试阻止它在输出中显示为删除或添加。它在内部使用“耐心差异”算法。...可以多次指定此选项。 如果源和目标中都存在一行,只存在一次,并以此文本开头,则此算法会尝试阻止它在输出中显示为删除或添加。它在内部使用“耐心差异”算法。...可以是未缩写的引用名称或 glob,可以多次指定。将为不存在的引用发出警告,但是会自动忽略与任何引用不匹配的 glob。...--apply 如果您使用上面标记为“关闭 _ 应用 _”的任何选项, git apply 将读取并输出所请求的信息,而不实际应用该补丁。在这些标志之后给这个标志也应用补丁。...子模 如果补丁包含对子模块的任何更改,则 git apply 会按如下方式处理这些更改。 如果指定--index(显式或隐式),则子模块提交必须与要应用的修补程序的索引完全匹配。
--binary # 除了--full-index输出可以应用的二进制差异git-apply --...可以使用任何过滤字符的组合(包括无)当*(全部或无)添加到组合中时,如果有任何文件与比较中的其他条件匹配,则选择所有路径; 如果没有与其他标准匹配的文件,则不会选择任何内容 -S...# 默认情况下,git apply期望所应用的修补程序是一个至少包含一行上下文的统一差异 --apply # 如果您使用上面标记为...“关闭应用 ”的任何选项 ,则git应用读取并输出所请求的信息,而不实际应用修补程序 --no-add # 应用修补程序时,...可以多次指定。
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。...,所以你可以放心的修 bug,等到修完 bug,提交到服务器上后,再使用 git stash apply 将以前一般的工作应用回来。...也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。...当你多次使用 git stash 命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑, git stash list 命令可以将当前的 Git 栈信息打印出来,你只需要将找到对应的版本号...,例如使用 git stash apply stash@{1} 就可以将你指定版本号为 stash@{1} 的工作取出来,当你将所有的栈都应用回来的时候,可以使用 git stash clear 来将栈清空
(展示下面两种方法) 0、查看 stach 列表 git stash list 1、git stash apply + git stash drop(删除 stash 内容...) 2、git stash pop,恢复的同时把stash内容也删了 3、再次查看 git stash list 看不到任何内容 4、可多次stash,...使用 git pull ,如果有冲突,要先处理冲突 ``` 6、rebase(变基 少用) ``` 1、git rebase 让多次提交记录 展示为一条线 ``` 7、打 tag(标签) ``` 1、选择需要...push origin `可以推送一个本地标签; - 命令`git push origin --tags`可以推送全部未推送过的本地标签; - 命令`git...tag -d `可以删除一个本地标签; - 命令`git push origin :refs/tags/`可以删除一个远程标签 ``` ## `4、出错了怎么办
如果你的产品服务器挂了,使用git blame命令可以很容易找出罪魁祸首。这个命令可以将文件中的每一行的作者、最新的变更提交和提交时间展示出来。 git blame [file_name] ?...如果你想要解除stash并且恢复未提交的变更,你可以进行apply stash: git stash apply 在屏幕截图中,你可以看到每个stash都有一个标识符,一个唯一的号码(尽管在这种情况下我们只有一个...如果你只想留有余地进行apply stash,你应该给apply添加特定的标识符: git stash apply stash@{2} ?...但它不是适应用于大型的仓库。那就是 fsck(文件系统检测)命令登场的时候了。 git fsck --lost-found ? 这里你可以看到丢掉的提交。...git fsck 相对reflog是有优势的。比方说你删除一个远程的分支然后关闭仓库。 用fsck 你可以搜索和恢复已删除的远程分支。 10.
git stash apply //恢复stash,但是stash内容并不删除 git stash drop //在上面操作的基础上,以此来删除stash 注: git stash...,及与本地分支的信息 git remote show origin 十、git stash临时保存本地操作 1、使用 git stash 就可以将你当前未提交到本地(和服务器)的代码推入到...3、改完后,切到刚才的分支,使用 git stash apply 将以前一半的工作应用回来。 也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。...当你多次使用 git stash 命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑, git stash list 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号...,例如使用 git stash apply stash@{1} 就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用 git stash clear 来将栈清空
,执行完这个命令后,执行git status会发现当前是一个干净的工作区,没有任何改动....2-2 git stash list 显示保存进度的列表,也就是说 git stash可以多次执行。...2-3 git stash pop 恢复之前缓存的工作目录,且将缓存堆栈中的第一个stash删除 git stash apply会将缓存区的第一个stash应用到工作目录,而不会删除相应的stash...2-4 git stash drop [stash-id] 删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。...暂存未跟踪或忽略的文件 git stash默认不会缓存在工作目录中的新文件、被呼噜的文件。
如果使用此选项克隆存储库,然后在源存储库中删除分支(或使用任何其他提交未引用的 Git 命令),则某些对象可能会变为未引用(或悬空)。...如果未提供 pathspec,则初始化并克隆所有子模块。对于包含多个条目的 pathspec,可以多次给出此选项。生成的克隆将submodule.active设置为提供的 pathspec,或“.”...您可以随意对修补程序进行任意更改,但请注意,某些更改可能会导致令人困惑的结果,甚至会产生无法应用的修补程序。如果要完全中止操作(即,在暂存区中不做任何更新),只需删除修补程序的所有行。...还有一些操作应该完全避免,因为它们会使补丁无法应用: 添加上下文(“ ”)或删除(“ - ”)行 删除上下文或删除行 修改上下文或删除行的内容 也可以看看 git-status [1]...可以多次指定此选项。 如果源和目标中都存在一行,只存在一次,并以此文本开头,则此算法会尝试阻止它在输出中显示为删除或添加。它在内部使用“patience diff”算法。
以下为后悔药,但是也只能恢复已经提交了的,本地未提交的没办法恢复!!!...如果没有关联, git 会在下面的操作中提示你显示的添加关联。关联目的是如果在本地分支下操作: git pull, git push ,不需要指定在命令 行指定远程的分支....使用git stash save 'message…'可以添加一些注释 git stash list 显示保存进度的列表。也就意味着,git stash命令可以多次执行。...git stash apply [–index] [stash_id] 除了不删除恢复的进度之外,其余和git stash pop 命令一样。...git stash drop [stash_id] 删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。 git stash clear 删除所有存储的进度。
可以多次指定此选项。 如果源和目标中都存在一行,只存在一次,并以此文本开头,则此算法会尝试阻止它在输出中显示为删除或添加。它在内部使用“耐心差异”算法。...--binary 除--full-index外,还可输出可用git-apply应用的二进制差异。...如果指定了n,则它是相似性指数的阈值(即与文件大小相比的添加/删除量)。例如,-M90%表示如果超过 90%的文件未更改,Git 应将删除/添加对视为重命名。...可以是未缩写的引用名称或 glob,可以多次指定。将为不存在的引用发出警告,但是会自动忽略与任何引用不匹配的 glob。...-n 指定在使用-l 时打印注释的行数(如果有)。意味着--list。 默认情况下不打印任何注释行。如果-n没有给出编号,则只打印第一行。如果标记未注释,则显示提交消息。
git-cherry-pick[1] 应用某些现有提交引入的更改 git-citool[1] git-commit 的图形替代方案 git-clean[1] 从工作树中删除未跟踪的文件...如果变量值在“COMMAND for DOMAIN”格式中,则该命令仅应用于以指定域字符串结尾的主机名。该变量可以多次设置并按给定顺序匹配;第一次匹配上就不继续往下匹配了。...cr-at-eol将行尾处的回车处理作为行终止符的一部分,即使用它,如果此回车符之前的字符不是空格(默认情况下未启用),则trailing-space不会触发。....* 上面的任何凭证。*选项都可以有选择地应用于某些凭据。....* 上面的任何 http。*选项都可以有选择地应用于某些 URL。
可以多次指定此选项。 如果源和目标中都存在一行,只存在一次,并以此文本开头,则此算法会尝试阻止它在输出中显示为删除或添加。它在内部使用“耐心差异”算法。...如果指定了n,则它是相似性指数的阈值(即与文件大小相比的添加/删除量)。例如,-M90%表示如果超过 90%的文件未更改,Git 应将删除/添加对视为重命名。...通常,只删除 Git 未知的文件,但如果指定了-x选项,则也会删除被忽略的文件。例如,这可以用于删除所有构建产品。 如果给出任何可选的<path>...参数,则只会影响这些路径。...OPTIONS -d 除了未跟踪的文件之外,删除未跟踪的目录。如果未跟踪的目录由不同的 Git 存储库管理,则默认情况下不会删除它。如果您确实要删除此类目录,请使用-f 选项两次。...map 函数可用于获取“原始 sha1 id”参数,如果已经重写了提交,则输出“重写的 sha1 id”,否则输出“original sha1 id”;如果您的提交过滤器发出多次提交, map 函数可以在单独的行上返回多个
应用场景 当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix...如果从stash中恢复的内容和当前目录中的内容发生了冲突,也就是说,恢复的内容和当前目录修改了同一行的数据,那么会提示报错,需要解决冲突,可以通过创建新的分支来解决冲突。...5. git stash apply 将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况...可以使用git stash apply + stash名字(如stash@{1})指定恢复哪个stash到当前的工作目录。...应用场景:当储藏了部分工作,暂时不去理会,继续在当前分支进行开发,后续想将stash中的内容恢复到当前工作目录时,如果是针对同一个文件的修改(即便不是同行数据),那么可能会发生冲突,恢复失败,这里通过创建新的分支来解决
git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 则一行一行地显示这些改动具体是啥: 尚未缓存的改动:git diff 查看已缓存的改动: git diff...要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交: git rm git rm -f //如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项...git stash list//显示这个栈的list. git stash apply//取出stash中的上一个项目(stash@{0}),并且应用于当前的工作目录.也可以指定别的项目,如:git...stash apply stash@{1} git stash pop//在应用stash中项目的同时想要删除它 git stash drop// 删除上一个,也可指定参数删除指定的一个项目 git stash...你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。
也就是说如果我们使用的是pop,那么当我们pop之后,这条记录会在堆栈当中删除。而如果使用的是apply呢,记录不会从堆栈当中删除,仍然会保留下来。...如果我们使用git stash pop的话,默认的是应用的栈顶的记录,也就是stash@{0}。但如果我们使用stash apply的话,我们可以自由选择我们想要应用的记录。...比如如果我们想要应用最后一条记录的话,我们可以这样: git stash apply stash@{2} 关于应用储存的修改也有一些细节,首先是储藏和修改对应的分支可以不同。...另外就是当我们应用储藏的时候,会发现我们之前add过的文件又重新回到了未暂存的状态。如果我们想要重新回到文件被暂存的状态时,我们可以使用index选项来执行。...git stash apply --index 对于我们已经不想要的储藏记录,我们可以执行git stash drop来进行删除。
检查 Git 存储库的状态,包括添加的未暂存的文件和暂存的文件: git status 要暂存修改后的文件,请使用该 add命令,您可以在提交前多次运行该命令。...如果您进行了要包含在下一次提交中的后续更改,则必须 add再次运行。...如果要添加当前目录中的所有文件以及子目录中的文件,可以使用 -all或 -A标志: git add -A 您可以使用以下命令从暂存中删除文件,同时保留工作目录中的更改 reset: git reset...stash@{0} 如果您保存了多个 stash 并且不再需要使用它们中的任何一个,则可以使用 clear删除它们: git stash clear 忽略文件 如果您想将文件保留在本地 Git 目录中...git push --force origin main 要从 Git 目录中删除本地未跟踪的文件和子目录以获得干净的工作分支,您可以使用 git clean: git clean -f -d 需要修改你的本地仓库
等你忙完手头的事情,回到原来的工作,你只需运行 git stash pop 或者 git stash apply,你之前的工作就会被“解包”,恢复到你离开时的状态,你可以接着做原来的工作了。...stash# 应用最新的stashgit stash apply# 通过git stash list查询后,获取应用指定的stash引用git stash apply stash@{2}5.使用 git...@{2}6.使用 git stash pop 来应用最新的stash并且删除# 通过git stash list 查询后,应用最新的stash并删除git stash pop7.使用 git stash...git stash 相关使用指令git stash: 保存当前所有未提交的更改。git stash save "message": 同上,但可以添加一条信息来描述此次 stash 的内容。...git stash pop stash_ref: 应用并删除指定的 stash,默认为最新的 stash。git stash drop stash_ref: 删除指定的 stash。
git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 则一行一行地显示这些改动具体是啥: 尚未缓存的改动:git diff 查看已缓存的改动: git diff -...要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交: git rm git rm -f //如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项...git stash list//显示这个栈的list. git stash apply//取出stash中的上一个项目(stash@{0}),并且应用于当前的工作目录.也可以指定别的项目,如:git...stash apply stash@{1} git stash pop//在应用stash中项目的同时想要删除它 git stash drop// 删除上一个,也可指定参数删除指定的一个项目 git stash...你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。
其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的...,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来。...你也可以使用git stash apply命令,将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝。...如果尝试应用的变更是针对一个你那之后修改过的文件,你会碰到一个归并冲突并且必须去化解它。...如果你想用更方便的方法来重新检验你储藏的变更,你可以运行 git stash branch,这会创建一个新的分支,检出你储藏工作时的所处的提交,重新应用你的工作,如果成功,将会丢弃储藏。
领取专属 10元无门槛券
手把手带您无忧上云