git暂存命令,一看就懂

2023-12-15 11:01:46

起因是因为平时我的开发习惯是每次开发多个功能之后,分多次commit然后一起push和pull同步,然后在公司使用gitlab的时候,发现gitlab如果按照我上面那样的操作方式的话只会记录一次推送,也就是说你一天的工作量甚至两三天再gitlab上可能之后一次推送。

简单的说就是gitlab只认定你的git push次数,而不认定你git commit的次数,因此顺便使用了一下git stash的方法。

当你在使用 Git 进行版本控制时,可能会遇到需要暂存当前工作目录的情况,但又不想提交更改。这时,Git 提供了 stash 命令来帮助你保存和恢复这些临时更改。本篇博客将详细介绍 Git 的 stash 命令的使用方法。

什么是 Git Stash

stash 是 Git 提供的一个命令,用于暂时保存当前工作目录的更改,以便你可以切换到其他分支或者恢复到之前的状态,而不必提交未完成的更改。

使用 Git Stash

保存工作目录的更改

要保存当前工作目录的更改,使用以下命令:

git stash
git stash save "暂存的备注"

执行该命令后,Git 会将所有未提交的更改(包括已暂存和未暂存的更改)保存到一个新的存储栈中,并将工作目录重置为干净的状态。

查看保存的暂存区列表

你可以使用以下命令查看保存的暂存区列表:

git stash list

该命令会列出所有保存的暂存区,每个暂存区都有一个唯一的标识符。

恢复暂存区的更改

要恢复之前保存的暂存区的更改,可以使用以下命令:

git stash apply [<stash_id>]


[<stash_id>]表示暂存区的标识符,也就是用于唯一标识每个暂存区的字符串。Git 会为每个保存的暂存区自动分配一个标识符,你可以使用 git stash list 命令查看所有暂存区的标识符。

当你需要恢复某个暂存区时,可以使用 git stash apply 或 git stash pop 命令指定该暂存区的标识符,例如:

git stash apply stash@{1}
这里的 stash@{1} 就是暂存区的标识符,表示要恢复第二个保存的暂存区。

如果你不指定标识符,则默认应用最新的暂存区。例如,以下命令将应用最新的暂存区:

git stash apply
在使用 git stash drop 命令删除暂存区时,也需要指定标识符,例如:

git stash drop stash@{0}
这里的 stash@{0} 表示要删除第一个保存的暂存区。



?

如果没有指定 <stash_id>,则默认应用最新的暂存区。执行此命令后,之前保存的更改将会被应用到当前工作目录中。

恢复暂存区的更改并删除(pop与apply同作用,多了删除功能)

如果你希望在应用暂存区的更改后将其从存储栈中删除,可以使用以下命令:

git stash pop [<stash_id>]

apply 命令类似,如果没有指定 <stash_id>,则默认应用最新的暂存区。执行该命令后,之前保存的更改将被应用到当前工作目录,并从存储栈中删除。

删除暂存区

如果你想删除一个或多个保存的暂存区,可以使用以下命令:

git stash drop <stash_id>

这里的 <stash_id> 是要删除的暂存区的标识符。如果不指定 <stash_id>,则默认删除最新的暂存区。

清空所有暂存区

如果你想一次性清空所有保存的暂存区,可以使用以下命令:

git stash clear

该命令将删除所有保存的暂存区,无法恢复。

结论

通过 stash 命令,你可以轻松地保存和恢复未提交的更改,而不必担心临时切换分支或回退代码会导致未完成的工作丢失。

希望本篇博客能够帮助你理解并正确使用 Git 的 stash 命令。如果你有任何疑问或需要进一步的帮助,请随时评论区留言!

文章来源:https://blog.csdn.net/qq_53114797/article/details/135008715
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。