已编辑 2 几周前 通过 ExtremeHow 编辑团队
Git版本控制存储视窗苹果电脑Linux命令行开发版本控制源代码控制工作流生产力
翻译更新 2 几周前
Git是软件开发领域中最广泛使用的版本控制系统之一。它由Linus Torvalds于2005年为Linux内核的开发创建。从那时起,它被应用于各种规模的软件项目中,由开发团队使用……有时甚至是独立开发者使用。Git可以帮助您跟踪代码的版本,与多个开发者协作,并确保在需要时始终可以返回到软件的早期版本。
在处理由Git管理的项目时,可能会有需要切换分支的情况。例如,您可能正在开发一个新功能,突然出现需要立即修复的关键错误报告。在这种情况下,您会希望在不丢失正在进行的功能工作的进度的情况下,切换上下文并进行错误修复。这时候,Git Stash就派上了用场。
Git stash是一个强大的功能,它允许开发者在不将更改提交到仓库的情况下临时保存它们。它有效地将您所做的更改“暂存”,允许您检出新分支,而不提交可能尚未准备好让其他人看到的新功能。在您准备好时,您可以将这些更改应用回您的工作副本或另一个分支。
当您运行git stash
命令时,您的更改会存储到一个堆栈中。这个堆栈可以包含多个储藏堆,您可以在稍后应用列表中的任何储藏堆。单个储藏堆是以下内容的组合:
一旦更改被储藏,您的工作目录就会清理干净,您可以切换分支,编译代码,或执行您需要做的其他任何事情。在完成该任务后,您可以通过弹出或应用储藏返回到原始工作。
要开始在Git中使用stash,您需要熟悉一些基本命令。以下是最重要的命令:
要存储您的更改,请使用以下命令:
git stash push
这会保存您的本地修改,并将您的工作目录恢复到与HEAD提交匹配。就好像您从未做过那些更改。
为隐藏的更改包括一个消息通常很有用,便于识别:
git stash push -m "your stash message"
此消息帮助您记住此储藏中的更改,而无需参考行级更改。
要查看您存储的所有集合的列表:
git stash list
此命令将输出所有储藏及其相关消息的列表。
要重新应用最新的储藏:
git stash apply
此命令将最新的储藏应用到您当前的工作目录,但不会从储藏列表中移除它。
如果您想应用特定储藏,请使用:
git stash apply stash@{n}
用您想应用特定储藏替换stash@{n}
,您可以从git stash list
输出中识别它。
要应用并立即删除最新的储藏:
git stash pop
这与应用命令类似,但它也从列表中移除了已应用的储藏。
如果您想删除特定的储藏(不应用它),请使用:
git stash drop stash@{n}
这会销毁指定的储藏。
如果您想删除所有储藏,命令是:
git stash clear
谨慎使用此命令,因为它会永久销毁所有存储的更改。
假设您在开发分支feature-xyz
上开发新功能,并且对您的工作副本进行了多次更改。突然间,您需要在主分支上修复一个严重错误。
git status
git stash push -m "Saving work on feature-xyz"
main
或您需要处理的其他分支:
git checkout main
git commit -a -m "Fixed critical bug"
git checkout feature-xyz
git stash pop
如果存在任何冲突,请解决它们,然后继续您的工作。
Git Stash提供了一些高级选项:
默认情况下,git stash push
只会储藏对跟踪文件的更改。要包括未跟踪的文件:
git stash push -u
这将同时归档跟踪和未跟踪的文件。
如果您还想储藏被.gitignore
显式排除的文件:
git stash push --all
您可以选择性地归档文件的部分内容:
git stash -p
此命令是交互式的,允许您选择特定的块进行储藏。
要重新应用存储的更改,包括已分阶段的更改(在索引中),请使用:
git stash apply --index
请注意,如果索引中有冲突的更改,这可能会导致冲突。
虽然储藏和取消储藏通常比较简单,但在储藏应用到已更新的代码库时,可能会发生冲突。如果发生冲突,Git会像合并冲突一样标记它们。您必须编辑受影响的文件,手动解决冲突,并将其标记为已解决:
git add <file>
解决后,您可以继续工作并最终提交更改。
以下是一些使Git Stash工作更轻松和更有效的提示:
-m
选项来标记您的储藏。这样可以帮助您稍后轻松识别它们。Git stash是开发者工具箱中的一个多功能工具,特别适合于保留未提交的工作和临时引用更改。通过有效地使用Git stash,开发者可以无缝管理不同任务中的更改,提高工作流程的效率和灵活性。
从保存未完成的工作到专注于重要错误,将git stash功能正确地实施到您的工作流程中,可以使代码更改的处理更加轻松和可管理。随着您对Git stash越来越熟悉,您会发现它成为您开发工具包中不可或缺的一部分。
如果你发现文章内容有误, 您可以