GIT corrupt files (<<<<<<<<HEAD)

情到浓时终转凉″ 提交于 2019-11-30 12:48:29

What you had wasn't trouble but conflicts. This happens when the files are modified by two different persons at the same place (you both add/remove/modify things inside the same lines).

You can simply update your files manually, by deciding to keep everything between <<<<<<< HEAD and =======, or between ======= and >>>>>>>, or some mix of the two. Once you resolve all your conflicts, you just need to commit your changes.

To discard local changes on a file, you can do

git checkout yourfile

or, for all files using

git checkout -- .

You can also decide, for each file, if you want to keep your version or the repository version with

git checkout --ours yourfile # Your version
git checkout --theirs yourfile # Repository version
cfi

Your Q is answered best by alestanis, already. Still for easy lookup:

An explanation of those conflict markers >>>>> ... <<<<< can be found at this question.

There's more info about merging at this Q.

And git help merge is quite explicitly helpful as well:

HOW TO RESOLVE CONFLICTS

After seeing a conflict, you can do two things:

· Decide not to merge. The only clean-ups you need are to reset the index file to the HEAD commit to reverse 2. and to clean up working tree changes made by 2. and 3.; git merge --abort can be used for this.

· Resolve the conflicts. Git will mark the conflicts in the working tree. Edit the files into shape and git add them to the index. Use git commit to seal the deal.

You can work through the conflict with a number of tools:

· Use a mergetool. git mergetool to launch a graphical mergetool which will work you through the merge.

· Look at the diffs. git diff will show a three-way diff, highlighting changes from both the HEAD and MERGE_HEAD versions.

· Look at the diffs from each branch. git log --merge -p <path> will show diffs first for the HEAD version and then the MERGE_HEAD version.

· Look at the originals. git show :1:filename shows the common ancestor, git show :2:filename shows the HEAD version, and git show :3:filename shows the MERGE_HEAD version.

Using SourceTree for git to manage my builds with Kdiff installed has helped me resolve 99% of these issues really efficiently.

I'm just left with trying to remove these from my SOU file in .Net, usually replacing the SOU file with an older version resolves this.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!