git checkout不';更新文件

git checkout不';更新文件,git,branching-and-merging,Git,Branching And Merging,我有两个Git分支master和develope。由于各种原因,我的develope分支出错,我想从master到develope获取所有文件。我知道这不是正确的解决方案,但以下是我所做的: git checkout master cd .. cp repo repo_master cd repo git checkout develop cp -r ../repo_master/* . 奇怪的是,在将我的文件(应该是主文件的版本)复制到我的repo之后,运行 git diff 什么也看不出

我有两个Git分支
master
develope
。由于各种原因,我的
develope
分支出错,我想从
master
develope
获取所有文件。我知道这不是正确的解决方案,但以下是我所做的:

git checkout master
cd ..
cp repo repo_master
cd repo
git checkout develop
cp -r ../repo_master/* .
奇怪的是,在将我的文件(应该是
主文件的版本)复制到我的repo之后,运行

git diff
什么也看不出来。我不明白。更奇怪的是跑步

git diff master develop
确实有很多不同之处


我做错了什么?另外,我应该怎么做呢?

如果您不需要保留开发中的任何更改:

git分支-d develope
将删除包含其内容的develope分支

git checkout-b develope
将当前分支(在您的案例中为master)复制到名为develope的新分支

或者,如果您需要在开发过程中保留任何内容:

git签出开发

git合并主机--无ff
然后解决冲突(如果有)

git checkout develop
git reset master
这将重置开发分支以精确匹配主分支。所有特定于开发分支的提交都将被删除

git checkout develop
git checkout master -- .

第二个命令将所有文件从分支
master
复制到当前工作树和索引。使用git diff--cached进行验证并提交。

您可以使用

git rebase -i --commiter-date-is-author-date HEAD~50
并删除从提交列表底部开始的行。直到达到合并前的最后一次提交。 保存并退出文件

再次检查您的最新提交,以确保其与

git log -n 10 --oneline
然后最终覆盖你的遥控器


你需要在这里给我们更多的信息。什么搞砸了?什么时候发生的,即发生了多少次?解决这类问题的典型方法不一定涉及到另一个分支,它只意味着在达到一个稳定点之前重置东西。基本上,我使用git flow并希望进行代码现代化(它使用Java 5),所以我有一个非常糟糕的想法,将其视为一个功能。当我重新合并到
develope
中时,整个代码翻了一番(我猜git只是估计这是处理冲突的最佳方式…),这就是为什么我得到了几百个不再编译的类。我本来会进行重置,但我正在处理一个功能分支,该分支被合并到
develope
中(是的,这就是问题所在),而
develope
上进行了其他更改。所以我只是想,考虑到我修改的性质,我宁愿收回
master
代码——它正在工作,根据git流的定义,并将其放回
develope
以“重新开始”,git不会以这种方式工作。如果整个分支都有问题,就不要像这样移动一堆源代码。相反,只需将
develope
分支重置为
master
中的一些提交即可。我无法给出确切的答案,因为您当前的状态似乎一团糟。这是否也会删除我对
develope
所做的所有提交?因为分支是提交的集合,答案是肯定的,它将删除指定分支中的所有提交。如果您在任何时候将其与其他分支合并,那么这些分支中的代码将保持原样。
git push origin -f