git checkout不会更新文件

时间:2018-06-27 06:11:01

标签: git branching-and-merging

我有两个Git分支masterdevelop。由于各种原因,我的develop分支混乱了,我希望将所有文件从masterdevelop。我知道这不是正确的解决方案,但这是我所做的:

git checkout master
cd ..
cp repo repo_master
cd repo
git checkout develop
cp -r ../repo_master/* .

奇怪的是,将我的文件(应该是master的版本)复制到我的仓库中后,运行

git diff

不显示任何内容。我不明白甚至更奇怪的是,跑步

git diff master develop

有很多差异。

我在做什么错?另外,我该怎么办?

4 个答案:

答案 0 :(得分:2)

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

git branch -d develop将使用其内容删除开发分支。

git checkout -b develop将当前分支(在您的情况下为主节点)的副本复制到名为dev的新分支。

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

git checkout develop

git merge master --no-ff 然后解决冲突(如果有)。

答案 1 :(得分:1)

git checkout develop
git reset master

这将重置您的develop分支,使其与master分支完全匹配。专门针对developer分支的所有提交都将被删除。

答案 2 :(得分:0)

git checkout develop
git checkout master -- .

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

答案 3 :(得分:0)

您可以通过使用

撤消合并
git rebase -i --commiter-date-is-author-date HEAD~50

并删除提交列表底部的行。直到您达到合并之前的最后一次提交。 保存并退出文件。

再次检查您的最新提交,以确保其正确通过

git log -n 10 --oneline

然后最后覆盖您的遥控器

git push origin -f