在VS2012 git-plugin出现问题后,我的文件中有这个:
using Microsoft.VisualStudio.TestTools.UnitTesting;
<<<<<<< HEAD
using NHibernate;
=======
>>>>>>> dd2c3d7dfe81074e7c5a73f8e4ca2584481a74f1
namespace Controll.Hosting.Tests
{
[TestClass]
public class TestBase
{
<<<<<<< HEAD
protected ISessionFactory SessionFactory;
[TestInitialize]
public void InitializeTestBase()
{
SessionFactory = NHibernateHelper.GetSessionFactoryForMockedData();
=======
[ClassInitialize]
public void InitializeTest()
{
Console.WriteLine("Settings NHibernateHelper.IsInTesting -> True");
NHibernateHelper.IsInTesting = true;
>>>>>>> dd2c3d7dfe81074e7c5a73f8e4ca2584481a74f1
}
}
}
如何重置文件?
答案 0 :(得分:22)
你所拥有的不是麻烦,而是冲突。当文件被同一个地方的两个不同的人修改时,你会发生这种情况(你们都在同一行内添加/删除/修改内容)。
您可以手动更新文件,方法是决定将所有内容保存在<<<<<<< HEAD
和=======
之间,或=======
和>>>>>>>
之间,或两者的混合。一旦解决所有冲突,您只需提交更改。
要放弃文件的本地更改,您可以执行
git checkout yourfile
或,对于使用
的所有文件git checkout -- .
您还可以为每个文件决定是否要保留您的版本或存储库版本
git checkout --ours yourfile # Your version
git checkout --theirs yourfile # Repository version
答案 1 :(得分:6)
你的Q已经被alestanis回答得最好了。仍然容易查找:
可以在this question找到有关冲突标记>>>>>
... <<<<<
的说明。
有关于this Q合并的更多信息。
git help merge
也非常明确有用:
如何解决冲突
看到冲突后,你可以做两件事:
·决定不 合并。您需要的唯一清理是将索引文件重置为 HEAD承诺撤销2.并清理工作 由2.和3做出的树变化。
git merge --abort
可用于此目的。·解决冲突。 Git将标记冲突 工作树。将文件编辑为形状,将
git add
编辑为 指数。使用git commit
以达成协议。您可以使用多种工具解决冲突:
·使用mergetool。
git mergetool
启动图形合并工具 将帮助您完成合并。·看看差异。
git diff
将显示三向差异,突出显示HEAD的变化 和MERGE_HEAD版本。·查看每个分支的差异。
git log --merge -p <path>
将首先显示HEAD版本的差异 然后是MERGE_HEAD 版本·看看原件。
git show :1:filename
显示共同的祖先,git show :2:filename
显示HEAD版本,git show :3:filename
显示MERGE_HEAD版本。
答案 2 :(得分:0)
使用SourceTree for git来管理安装了Kdiff的构建,这有助于我真正有效地解决99%的问题。
我刚试图从.Net中的SOU文件中删除这些文件,通常用旧版本替换SOU文件会解决此问题。