Git 隐藏未提交的文件
Git stash uncommitted files
我有两台服务器用于开发和生产。在开发服务器中,我有一个与 origin 合并的新分支。现在我想投入生产并进行更改。
但是在 branch master 的生产服务器中,我修改了两个文件,只有这个服务器需要。
所以当我点击:
git pull
我得到:
error: Your local changes to the following files would be overwritten by merge:
app/code/local/NextBits/DependentCustomOptionsImage/Block/Adminhtml/Template/Edit/Tab/Options/Option.php
app/design/adminhtml/default/default/layout/dependentcustomoptionsimage.xml
Please, commit your changes or stash them before you can merge
这是我需要的两个文件。
如何在不覆盖这些文件的情况下提取原点?
或者我怎样才能保留这些文件、拉取更改并将它们还原?
至少有三种不同的解决方案可以实现这一点:
您可以 commit
在生产服务器中对这两个文件进行更改,然后 运行 宁 git pull
:
git add -v -u
git commit -m "Save prod config"
git pull
这通常会创建合并提交,将本地分支(与提交 "Save prod config"
)和来自远程的更改结合起来。
如果有一些冲突,你只需要在git status
、git diff
和git commit
的帮助下解决它。
后续更新的话,运行 git pull
.
应该就够了
与之前的解决方案一样,您可以 commit
对两个生产配置文件进行更改,但是 运行 git pull -r
之后:
git add -v -u
git commit -m "Save prod config"
git pull -r
-r
选项代表 --rebase
并且意味着特定于生产服务器的本地提交将 rebased 在拉取提交。
后续更新可以通过运行ning git pull -r
.
进行
这个解决方案的主要优点只是能够保持 "linear history":没有创建合并提交并且 "Save prod config"
提交将始终在 'end'历史.
或者你可以使用git stash
命令(在冲突的情况下可能会有一些缺点):
git stash
git pull
git stash pop
我有两台服务器用于开发和生产。在开发服务器中,我有一个与 origin 合并的新分支。现在我想投入生产并进行更改。 但是在 branch master 的生产服务器中,我修改了两个文件,只有这个服务器需要。
所以当我点击:
git pull
我得到:
error: Your local changes to the following files would be overwritten by merge:
app/code/local/NextBits/DependentCustomOptionsImage/Block/Adminhtml/Template/Edit/Tab/Options/Option.php
app/design/adminhtml/default/default/layout/dependentcustomoptionsimage.xml
Please, commit your changes or stash them before you can merge
这是我需要的两个文件。
如何在不覆盖这些文件的情况下提取原点?
或者我怎样才能保留这些文件、拉取更改并将它们还原?
至少有三种不同的解决方案可以实现这一点:
您可以
commit
在生产服务器中对这两个文件进行更改,然后 运行 宁git pull
:git add -v -u git commit -m "Save prod config" git pull
这通常会创建合并提交,将本地分支(与提交
"Save prod config"
)和来自远程的更改结合起来。如果有一些冲突,你只需要在
git status
、git diff
和git commit
的帮助下解决它。后续更新的话,运行
git pull
. 应该就够了
与之前的解决方案一样,您可以
commit
对两个生产配置文件进行更改,但是 运行git pull -r
之后:git add -v -u git commit -m "Save prod config" git pull -r
-r
选项代表--rebase
并且意味着特定于生产服务器的本地提交将 rebased 在拉取提交。后续更新可以通过运行ning
进行git pull -r
.这个解决方案的主要优点只是能够保持 "linear history":没有创建合并提交并且
"Save prod config"
提交将始终在 'end'历史.或者你可以使用
git stash
命令(在冲突的情况下可能会有一些缺点):git stash git pull git stash pop