已经在几个开发人员的本地计算机上克隆了一个Git存储库.对存储库中的代码进行了一些更改.我们现在收到错误:
error: Your local changes to the following files would be overwritten by merge:
public_html/sites/file
public_html/sites/file1.txt
public_html/sites/file2.txt
Please, commit your changes or stash them before you can merge.
Aborting
Run Code Online (Sandbox Code Playgroud)
我在线阅读了不少主题,并提出了几种不同的选择.一种方法是运行:
git stash
git pull
git stash pop
Run Code Online (Sandbox Code Playgroud)
我想我理解了藏匿的基本原则.我的问题是,这是一个很好的解决方案,我可以使用这种方法遇到任何问题吗?我对Web开发有一个合理的理解,但我是一个相当基本的Git用户,并且在这一点上没有很多能力让自己摆脱困境.
小智 15
git stash尽管如格雷格所说,由于某些原因解决冲突可能会变得奇怪,但是完全合法.但它们仍然是可以修复的,你实际上不会满足于任何东西.我知道重新应用藏匿的命令git stash apply虽然pop可能是我不知道的替代方案(或者它可以做一些不同的事情,我不知道,所以你可能想要使用它apply.)
有没有理由你不想在合并之前提交这些更改?一般来说,这是正确的做法.
另一种选择是:
git stash
git checkout -b newwork
git stash apply
git commit ...
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的分支,这将允许您使主人更新而不会发生冲突,(再次检查主人,然后拉或获取+合并).然后你可以合并你的分支(同时仍然在主人) git merge newwork.您可以解决master上的冲突,同时仍然保留新工作的工作而不会发生任何冲突.如果你担心冲突真的搞砸了,这会更安全一些,但一般来说,冲突只是过程的一部分,所以不要过于担心它们.
在拉动(合并)新代码之前始终提交任何本地更改是一种好习惯.如果您不提交,那么Git不知道您希望如何管理本地更改.仅与干净的工作树合并.
由于本地和其他人更改了相同的文件,因此合并中可能存在冲突.根据我的经验,解决实际合并操作中的冲突比从存储弹出操作解决相同的冲突稍微简单一些.
| 归档时间: |
|
| 查看次数: |
58251 次 |
| 最近记录: |