gpt4 book ai didi

git - 是否可以将更改从 master 创建的分支作为本地更改返回到 master?

转载 作者:行者123 更新时间:2023-12-04 00:49:05 28 4
gpt4 key购买 nike

所以如果我在 master 中做:

git checkout -b my-branch

并在那里做几次提交+推送。然后我做:

git checkout master
git pull

我现在能以某种方式将 my-branch 中的这些更改作为本地更改作为本地更改吗,就像在执行 之后使用 git stash apply >git 存储?

编辑:我所说的本地更改是指如果我编辑某些内容或从存储中获取文件,工作区中的文件将被编辑,等待更改,但它们不会提交。本地更改没有提交历史或任何东西。本地文件被简单地改变了。如果我提交并将“本地”更改推送到 master,我的分支将不会有任何提交历史。

最佳答案

命令 git stash apply 获取 stash 的更改并将它们应用到当前工作树状态之上。请注意,此时没有进行或引用任何提交。我假设“本地更改”是指您的工作树中的此类更改。可以为具有 git restore 的分支复制此行为如下:

git restore --source=my-branch --worktree -- .

让我们看看这两个命令与下图的比较:

$ git log --oneline --graph --all
* e7cea52 (my-branch) Same as in stash
| * b3d1317 (refs/stash) WIP on master: df7538f Initial commit
| |\
|/ /
| * 0f7231b index on master: df7538f Initial commit
|/
* df7538f (HEAD -> master) Initial commit

建议的解决方案 git-restore 应用删除和修改。新文件已添加但未跟踪(未添加到索引):

$ git restore --source=my-branch --worktree -- .
$ git status -s
D old.txt
M readme.md
?? new.txt

使用 git-stash 时,也会应用删除和修改。唯一的区别是新文件已经暂存(添加到索引中):

$ git stash apply
$ git status -s
A new.txt
D old.txt
M readme.md

如果您想获得实际的提交(而不仅仅是工作树中的更改),您可以按照 @joanis 的建议使用 git merge my-branch。 p>

关于git - 是否可以将更改从 master 创建的分支作为本地更改返回到 master?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67886393/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com