如何在不使用git-stash的情况下保存正在进行的工作? [英] How do I save work in progress without using git-stash?

查看:10
本文介绍了如何在不使用git-stash的情况下保存正在进行的工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个git目录,出现这种情况:

ProgSoul@PROGSOUL-LENOVO:~/esercizio3_2$ git status
Sul branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   A

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   A

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        B

在这种情况下,我有:

  • 索引中有一个名为A的文件,其中包含字符串"AA"
  • 我修改了包含"aaa"的文件A,但我没有在舞台上添加此更改。因此,在工作目录中,我有一个内部带有字符串"aaa"的A
  • 未跟踪的空文件B

我的老师希望我暂时停止工作,创建一个错误修复文件,然后提交并还原我以前的情况。

我是通过以下命令实现的:

git stash --include-untracked
touch BUGFIX
git add BUGFIX
git commit -m "Aggiunto file BUGFIX"
git stash pop --index
使用这些命令,我保存了我的初始情况,并在提交修复程序后将其恢复。 我的老师也要求我在不使用git-stash的情况下实现这一目标。

我按照Stash文档中的帮助操作:

git checkout -b WIP
git commit -a -m "WIP"
git checkout master
touch BUGFIX
git add BUGFIX
git commit -a -m "BUGFIX"
git checkout WIP
git reset --soft HEAD^

使用git重置--soft我还原了索引,但未暂存用于提交的更改已丢失。

使用git重置--MIXED,我还原了未暂存用于提交的更改,但索引已丢失。

在不使用Git Stash的情况下提交修复程序后,如何恢复相同的初始情况?

推荐答案

感谢我收到的每一个答复。我实现了两种可能的解决方案:

git worktree add -b BUGFIX ../bugfix_temp master
pushd ../bugfix_temp
touch BUGFIX
git add BUGFIX
git commit -a -m "emergency BUGFIX"
popd
rm -rf ../bugfix_temp
git worktree prune

touch BUGFIX
git add BUGFIX
git commit --only BUGFIX -m "emergency BUGFIX"

这篇关于如何在不使用git-stash的情况下保存正在进行的工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆