stash
git stash
、git stash save '信息'
:备份当前的工作区,从最近一次提交中读取相关内容,让工作区保持和上一次提交的内容一致。同时,将工作区的内容保存到git栈中。
git stash pop
、git stash pop stash@{n}
:从git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个stash的内容,所以用栈来管理,pop会从最近一个stash中读取内容并恢复到工作区。
git stash pop == git stash pop stash@{0}
git stash drop
、git stash drop stash@{0}
:丢弃
git stash drop == git stash drop stash@{0}
git stash list
:显示git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear
:清空git栈。
git show stash@{n}
:当有多条记录并且过了一段时间忘记stash内容时通过该命令可以查看stash的具体内容。
注意:
- git stash不针对特定的分支,切换分支后,stash内容不变,所以弹出时要小心;
- git stash pop或drop后,stash的序号会自动改变,连续弹出时要注意。
常见问题
1. error: please commit or stash them.
git stash
git pull
git stash pop
2. stash@{n} 异常
PowerShell 中,花括号是代码块执行标识符,需要使用反引号(`)转义。
git stash pop stash@`{0`}
3. Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of password.
- 生成token
GitLab->Edit Profile->Access Tokens
- 克隆
git:https://gitlab-xx.com/harmony/app.git
格式:git clone https://{username}:{token}@{URL}
git clone https://{username}:{token}@gitlab-xx.com/harmony/app.git