有时我需要为当前(可能是脏的)工作目录做一个快照。 git stash save -u
和我需要的非常相似但是有两个问题:
- 我希望我的工作目录保持相同状态(保持未跟踪的文件未跟踪)
- 万一我需要回到保存的状态(可能一个月后),
git stash apply
并不容易,因为我首先需要找到git 之前的状态藏起来
。
我目前有以下适合我的命令序列,但我想知道是否有更优雅的方法。
# on branch master
git add .
git commit -m "Temporary commit on the original branch"
git checkout -b snapshot_of_master_yyyy-mm-dd-hh-mm-ss HEAD~
git merge master
git checkout master
git reset HEAD^
谢谢大家的解答和解释!我将主要根据@XavierGuihot 的回答做类似的事情
git stash -u # -u to include untracked files
git checkout -b snapshot_of_master_yyyy-mm-dd-hh-mm-ss
git stash apply
git add --all
git commit -m "Snapshot"
git checkout master
git stash pop --index # --index to recover the state of indexed files
最佳答案
您可以存储您的更改,创建一个新分支,应用您的更改,仅在新分支上执行提交,然后在最终再次应用您的更改之前再次检查 master。
git stash
git checkout -b snapshot_of_master_yyyy-mm-dd-hh-mm-ss
git stash apply
git add --all
git commit -m "Snapshot"
git checkout master
git stash pop
关于git - 使用 git 制作工作目录的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856649/