Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 尝试合并分支返回';已更新';尽管有变化_Git_Github_Branching And Merging - Fatal编程技术网

Git 尝试合并分支返回';已更新';尽管有变化

Git 尝试合并分支返回';已更新';尽管有变化,git,github,branching-and-merging,Git,Github,Branching And Merging,我正在使用git进行项目协作。有一个主存储库,然后我们每个人都有自己的分支,并将更改从主存储库拉入其中。然而,尽管我可以看到在我的分支中没有出现主控中的更改,但我无法让git将它们引入: $ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. (master) $ git status On branch master Your branch is up-

我正在使用git进行项目协作。有一个主存储库,然后我们每个人都有自己的分支,并将更改从主存储库拉入其中。然而,尽管我可以看到在我的分支中没有出现主控中的更改,但我无法让git将它们引入:

$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

(master) $ git status
On branch master
Your branch is up-to-date with 'origin/master'.

## removed listing of untracked files not relevant to the question ##

nothing added to commit but untracked files present (use "git add" to track)
因此,我的本地
master
分支与远程
master
是最新的。请注意,我还有未跟踪的文件,这些文件列在
git status
的输出中。我删除了那些行,因为它们在这里不相关

现在,我切换到我的
terdon
分支:

(master) $ git checkout terdon
Switched to branch 'terdon'
Your branch is up-to-date with 'origin/terdon'.

(master) $ git status
On branch terdon
Your branch is up-to-date with 'origin/master'.

## removed listing of untracked files not relevant to the question ##

nothing added to commit but untracked files present (use "git add" to track)
如上所述,分支机构通过远程
terdon
更新,并且
状态
对其进行确认。但是,
master
中有一些变化不在
terdon
中:

(terdon) $ git diff terdon master | wc 
   1940    8389   77113  ## loads of differences
试图拉它们,但不起作用:

(terdon) $ git pull origin master
From github.com:foo/foo
 * branch            master     -> FETCH_HEAD
Already up-to-date.

(terdon) $ git merge master 
Already up-to-date.
我确实注意到,
master
中的最新提交也在
terdon
中,但是:

$ git log origin/terdon --graph
* commit 800a899fbb88ac16d1856f6d199ffba7817fba6b
| Author: terdon
| Date:   Fri Apr 29 13:09:56 2016 +0200
| 
|     use local tmp dir and allow 12G mem for novosort
|    
*   commit d8c90a8a53ba803be8a5593c4470eed4ac9b6e40
|\  Merge: 7635f22 46edf86
| | Author: terdon
| | Date:   Fri Apr 29 13:03:08 2016 +0200
| | 
| |     Merge branch 'master' of github.com:foo/foo into terdon
| |   
| * commit 46edf86e2329f9351bff291eeb55e8cb13f70031
| | Author: Andreas
| | Date:   Fri Apr 29 09:37:47 2016 +0200
| | 
| |     bug fix with new transcriptomes not having pointer to reference genome
| |     
以及:

这让我觉得我做了一些愚蠢的事情,但我不知道是什么。如何将我知道的
master
分支中的更改引入
terdon


我也尝试了来自的建议,但没有改变:

$ git fetch --all --prune
Fetching origin
From github.com:foo/branch2
 x [deleted]         (none)     -> origin/branch3
 x [deleted]         (none)     -> origin/branch4
 x [deleted]         (none)     -> origin/branch5
 x [deleted]         (none)     -> origin/branch6
 x [deleted]         (none)     -> origin/branch7
 x [deleted]         (none)     -> origin/branch8
 x [deleted]         (none)     -> origin/branch9
 x [deleted]         (none)     -> origin/branch10
 x [deleted]         (none)     -> origin/branch11
 x [deleted]         (none)     -> origin/branch12
 x [deleted]         (none)     -> origin/branch13
 x [deleted]         (none)     -> origin/branch14
 x [deleted]         (none)     -> origin/branch15
 x [deleted]         (none)     -> origin/branch16
 x [deleted]         (none)     -> origin/branch17
 x [deleted]         (none)     -> origin/branch18
 x [deleted]         (none)     -> origin/branch19
 x [deleted]         (none)     -> origin/branch20
 x [deleted]         (none)     -> origin/branch21
 x [deleted]         (none)     -> origin/branch22
 x [deleted]         (none)     -> origin/branch23
然后我跑:

$ git log master ^terdon 

但两者都没有产出

快速回答:

您在
terdon
分支中有更改,但这些更改尚未在master中


更多详细信息
首先,做一个完整的git获取(不会改变任何东西,但最好是更新)

其次,看起来您的所有更改都是在
terdon
分支中进行的,而不是在
master
上,因此您的
terdon
分支已经使用master进行了更新(我认为是master的分支)

要验证这是否是实际情况,请签出
master
并使用
terdon

git log ^master terdon
OR
git log master ^terdon
取决于您所在的分支以及是否要查看拉/推更改


完整答案
git diff

git diff
显示两个分支之间的更改。看起来您已提交到
tredon
,但未合并到master。您的主机是最新的,并且更改在新的分支中


如何合并更改?

git checkout master
git merge tredon

谢谢,但这些似乎都没有帮助(见更新的问题)。我的变化肯定在主分支中。当我检查分支时,我可以在那里看到它们,我可以在
diff terdon master
的输出中看到它们。我想把这些变化从大师带到泰顿。我该如何进行这种“干式”合并?您的代码未提交。它在车站里。git状态将向您显示更改,pull将只合并提交。据我所知,我没有任何未提交的更改<代码>git状态将显示隐藏的更改,对吗?另外,请查看更新的问题。来自
master
的最新提交确实出现在
terdon
的日志中,这表明应已导入更改。尽管如此,变化并不存在。我很确定这是非常相关的,但我不知道如何/为什么。你对git有些误解。在git中有3个州。工作目录和暂存区跟随您到您签出的任何分支机构。当头部改变时,这些不会改变。查看状态(不是日志!!!)查看未提交的更改我对git有很多误解,我对git很陌生,非常感谢您的帮助。我在问题中显示了
git status
的输出,它告诉我一切都是最新的,没有列出任何隐藏的文件。我删除了提及未跟踪文件的行,因为这些文件不相关,但我显示了由
git status
返回的所有其他内容。git status的输出是什么?我愿意打赌内容将在暂存区。@CodeWizard我在问题中添加了两个分支上运行的
git status
的输出。我删除了一些列有未跟踪文件的行,这些文件也在目录中。没有别的了。它的状态不是日志<代码>git状态不是
git日志
@CodeWizard
git日志
输出也显示在上面。我可以看到,来自master的最新提交似乎列在terdon的日志中,但我想要从master得到的更改却不在那里。嗯。帮忙?
git fetch --all --prune
git log ^master terdon
OR
git log master ^terdon
git checkout master
git merge tredon