相关疑难解决方法(0)

如何恢复隐藏的未提交更改

我在我的开发分支中有一些未提交的更改,并且我使用它们进行了存储git stash,但是有些更改在那些被隐藏的更改中非常重要.有没有办法找回这些变化?

此外,我已经在存储的代码文件之上做了一些更改.

如果可能的话,我是否有可能检索到新分支的藏匿更改?

git git-stash

600
推荐指数
7
解决办法
49万
查看次数

"git pull"可以自动存储并弹出挂起的更改吗?

我知道如何解决这个问题:

user@host$ git pull
Updating 9386059..6e3ffde
error: Your local changes to the following files would be overwritten by merge:
    foo.bar
Please, commit your changes or stash them before you can merge.
Aborting
Run Code Online (Sandbox Code Playgroud)

但是,是不是有办法让git pullstashpop舞蹈给我吗?

如果此命令具有不同的名称,则可以.

创建shell别名git stash; git pull; git stash pop是一种解决方案,但我寻找更好的解决方案.

git git-stash git-pull

108
推荐指数
4
解决办法
3万
查看次数

git stash并申请

我是git的新手,并不清楚stashing是如何工作的.

假设我正在分支主服务器上工作并尝试git pull接收错误,即我的本地更改将被覆盖并需要被隐藏或提交.如果我没有上演我的任何更改并运行git stash,那么做一个git pull并成功更新,当我发生了什么git stash apply

一般来说,如果其他人修改文件并且我运行git pull,那么当我发生时会发生什么run git stash apply?它是否会覆盖刚刚更新的文件,无论它们是否在我存储时被暂存?它是否会覆盖我刚刚更新过的每个文件,git pull以及被隐藏的文件?

git git-stash git-pull

31
推荐指数
2
解决办法
2万
查看次数

如何从"git stash save --all"中恢复?

我想隐藏未跟踪的文件,但我继续传递错​​误的选项.对我来说这听起来是对的:

git stash save [-a|--all]
Run Code Online (Sandbox Code Playgroud)

但实际上这也隐藏了文件.正确的是:

git stash save [-u|--include-untracked]
Run Code Online (Sandbox Code Playgroud)

当我运行git stash save -a并尝试git stash pop它时,我得到所有被忽略文件的无数错误:

path/to/file1.ext already exists, no checkout
path/to/file1.ext already exists, no checkout
path/to/file1.ext already exists, no checkout
...
Could not restore untracked files from stash
Run Code Online (Sandbox Code Playgroud)

所以命令失败了.

如何恢复跟踪和未跟踪的更改?git reflog不存储存储命令.

git git-stash

13
推荐指数
1
解决办法
3905
查看次数

Git:如何在预提交挂钩中重新启动暂存文件

我正在写一个git pre-commit钩子.
该脚本可以重新格式化一些代码,因此它可以修改分阶段文件.

如何重新暂存已经上演的所有文件?

git githooks git-stage

10
推荐指数
2
解决办法
3826
查看次数

git预提交钩子代码格式化与部分提交?

是有办法有一个pre-commit钩子,其自动格式化代码(例如用astyle),但并没有破坏的部分提交吗?

工作流程:

# edit a file.txt
git add -p file.txt
# add one chunk, but not another

git commit -m 'a message'
[PRE_COMMIT_HOOK] Formatting source code

git status
# the "another" chunk is still not added
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果你git add在预提交钩子里面做了一个,这是在脚本格式化源代码之后需要的,那么也添加了"另一个"块.但我不希望这样.

有没有办法实现这个目标?

git formatting pre-commit-hook githooks

8
推荐指数
1
解决办法
4113
查看次数

git藏两个分支

这种情况:

  1. 我在分支A上进行了更改
  2. git stash 在分支A上
  3. git checkout B
  4. 在分支B上进行了更改
  5. git stash 在分支B上
  6. git checkout A
  7. git stash pop 在分支A上

在上述清单的第7步之后,我在存储之前在分支A上所做的更改没有恢复,但是在分支B上进行的更改在分支A上弹出。我cmd z在分支A上使用了该文件,并回到了先前的状态,有我所做的更改。这似乎分支的移动分支B的同样的事情发生在头部头部时,我git checkout Bgit stash pop该分支:分支B的所有分支一所做的更改,但不是我的分支B.我所做的更改用于cmd z再恢复到我需要的分支状态。

一段时间以来,这给我带来了很多问题,直到被允许再次在项目上提交代码(没人可以提交一段时间,因为提交时会自动将服务器推送到服务器,并且经理不希望新的代码出现在服务器中)。服务器,直到他们运行了一些测试)。如何仅弹出分支本身所做的更改,而不弹出其他分支所做的更改?

git git-stash git-branch

6
推荐指数
1
解决办法
1648
查看次数

是否可以在 git 中禁用“危险”命令行选项?

按照习惯,我会经常修改我的 repo,并使用一次添加/提交它 git commit -am 'my commit message'

有时我只想添加几个修改过的文件,所以我会发出准备git add命令来精心设置我的暂存区,并将准备提交的更改与半生不熟的更改分开。

然后,我会git commit -am '...'像往常一样发出相同的命令来完成整个事情。

有没有办法让我禁用该git commit -a选项,和/或在我使用-a开关时发出警告?我想训练自己摆脱这种粗略的习惯......

git git-config

5
推荐指数
1
解决办法
1155
查看次数

“git stash”是否在内部“提交”到我的本地存储库?

我只在访问远程存储库commit之前手动访问本地存储库。push

但更多时候我是pull为了让我的编码伙伴做出改变。

有时我们都处理同一个文件并且存在冲突。git stash在这些情况下,他告诉我在我之前做一个git pull,然后在git stash pop之后做一个。

但有时这会导致 git 下次告诉我不能,pull因为我有未合并的文件。这些通常是我不希望commit或对我的本地树进行的实验性更改push

有几次我需要发送我的工作,结果是远程存储库中的中间修订,包括我的本地实验、调试代码等,而我从来不想发送这些。我想避免造成这样的混乱。

这是由于stash修改了我的本地存储库吗?如果是这样,我怎样才能避免这种情况?如果不是,还有什么原因造成的?我是 git 的菜鸟,只使用这几个命令。

git git-stash git-commit

3
推荐指数
1
解决办法
2466
查看次数

检查Git是否以编程方式进行了更改

我想编写一个脚本,允许我轻松更改分支,保持当前的更改.

git stash
go checkout main
git stash pop
Run Code Online (Sandbox Code Playgroud)

问题是如果存储库中当前没有更改.然后stash pop会弹出以前的藏匿处.检查pop是否有变化的最简单方法是什么?

git bash

2
推荐指数
2
解决办法
2166
查看次数