我git pull在一个干净的工作目录上从我的上游做了一个,它向我展示了合并冲突.我花了大约一个小时手动重置它们,以为我搞砸了一些事情,它再次发生了.
这是git中的错误吗?我对它知之甚少,所以我完全愿意接受我这样做.
这是我的截断输出(它发生在大约9个文件但我想节省空间,文件名已被更改以保护无辜):
$ git status
# On branch master
nothing to commit (working directory clean)
$ git pull
Auto-merged xxxx/xxxx/xxxx.xxx
CONFLICT (content): Merge conflict in xxxx/xxxx/xxxx.xxx
Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)
我正在使用Solaris 11 Express和软件包默认git.
$ uname -a
SunOS xxxx 5.11 snv_151a i86pc i386 i86pc Solaris
$ git --version
git version 1.5.6.5
$ pkg list git
NAME (PUBLISHER) VERSION STATE UFOXI
developer/versioning/git 1.5.6.5-0.151.0.1 installed -----
Run Code Online (Sandbox Code Playgroud)
我发现了这个问题:Git pull失败:你有未分级的变化.Git状态:没有提交(工作目录清理),这似乎最接近,但有一个不满意的答案.
如何在不删除整个存储库并创建新克隆的情况下通过此操作?
尝试使用个人项目来学习/学习git.只有我和一个远程git仓库,一些提交,我陷入了失败的合并.我的很多文件现在都有Git合并冲突标记.
我怎么告诉git把所有东西扔掉,只是用我的?
我是如何进入我所处的状态的一个具体例子:
echo A new file > myFile.txt # example file
git add myFile.txt # add file
git commit # commit changes
git push # push changes to remote repo
echo A conflicting edit > myFile.txt # oh, no, forgot some changes
git add myFile.txt # add again
git commit --amend # amend previous commit
git push # fails. Git suggests to do a pull first
git pull origin HEAD # "Automatic merge failed" Now what?
# Just use …Run Code Online (Sandbox Code Playgroud) 假设我做了一个git merge并且在某些文件中有冲突,比如说,package.json或者pom.xml也许是其他一些文件.
我想要
由于2),我无法使用,git merge -Xours因为这将解决所有冲突.我想只解决一个特定文件中的冲突.
由于3),我无法使用,git checkout --ours package.json因为这可能会丢失输入分支的一些更改.
用例例如是:自动合并脚本,它将以预定义的方式解决琐碎的众所周知的冲突,如果其他文件中存在其他冲突,则会失败.
我经常遇到的典型情况是有两个分支,其中version字段package.json分叉如下:
$ git diff
diff --cc package.json
index 75c469b,f709434..0000000
--- a/package.json
+++ b/package.json
@@@ -1,6 -1,6 +1,12 @@@
{
"name": "test",
++<<<<<<< HEAD
+ "version": "2.0.1",
++||||||| merged common ancestors
++ "version": "1.0.0",
++=======
+ "version": "1.0.2",
++>>>>>>> master
Run Code Online (Sandbox Code Playgroud)
是否可以使用给定策略解决JUST ONE文件的冲突?就像是:
git-resolve-conflict --ours package.json
Run Code Online (Sandbox Code Playgroud) 我试图合并两个分支,这就是我所做的和发生的事情:
Abdulla (Master) new-git-project1
$ git merge sidebar
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Abdulla (Master *+|MERGING) new-git-project1
$ git merge sidebar
error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
Run Code Online (Sandbox Code Playgroud)
我是新手,所以我能得到简单的答案。
我有一个带遥控器的服务器,每当我git pull得到那些愚蠢的======和HEAD >>>>我的文件中的东西导致我的服务器无法正常工作.每次我想要将服务器更新为与我的源/主服务器相同时,如何防止这种情况?
这就是我做的:
git pull production master
Run Code Online (Sandbox Code Playgroud)
然后我得到了这个:
CONFLICT (content): Merge conflict in
Run Code Online (Sandbox Code Playgroud)
当我这样做时,git status我得到了这个:
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
both modified: photocomp/settings.py
both modified: photocomp/wsgi.py
Run Code Online (Sandbox Code Playgroud) 当Git在合并期间检测到冲突时,默认行为是使用<<< >>> ===标记填充文件.
这在大多数情况下都可以,但有时候我想以不同的方式解决冲突,我只想让Git创建不同的文件:
怎么实现呢?
如果没有简单的命令一次性创建这些文件(这有点令人惊讶),也许有一种方法来扩展Git以便它可以做到这一点?习俗mergetool还是什么?只是一个想法.
我已经找到了@Karl Bielefeldt的答案:
savefiles.sh
#!bash
BASE=$1
LOCAL=$2
REMOTE=$3
MERGED=$4
cp "$BASE" "$MERGED.git_BASE"
cp "$LOCAL" "$MERGED.git_LOCAL"
cp "$REMOTE" "$MERGED.git_REMOTE"
# never mark the conflict as merged
exit 1
Run Code Online (Sandbox Code Playgroud)
配置
mergetool.savefiles.cmd=/path/to/savefiles.sh $BASE $LOCAL $REMOTE $MERGED
mergetool.savefiles.trustexitcode=true
Run Code Online (Sandbox Code Playgroud) 
我正在eclipse中处理一个java项目.每次提交一个文件我想查看这个文件中所做的所有更改.在eclipse中很难分析哪些行被删除,添加,更改等.请对此提出建议.
我在bitbucket上有存储库(比如说A)和分叉存储库A-dev.一切都运作良好3个月.但是最近,当我试图在A-dev中创建pull请求时,它说:
无法合并无关分支
为什么会发生这种情况以及如何解决?无论如何要排除故障吗?
谢谢.
编辑

我无法压缩提交git rebase -i command,收到以下错误消息.
error: could not apply 3ad5c7b...
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
Run Code Online (Sandbox Code Playgroud)
什么是错误以及如何解决?
我刚刚将其中一个功能分支合并到了develop分支中,从那时起,当我打开Xcode时,.xcodeproj文件似乎丢失了,项目导航器中的所有文件也都消失了.点击.xcodeproj文件,我收到以下警告:The file couldn’t be opened.
这是虽然我在所有分支中添加.xcodeproj到该.gitignore文件.你遇到过这样的情况吗?