Git合并&拉代码和本地更改丢失

问题描述:

在这里,我写了我遵循提交代码的git命令。Git合并&拉代码和本地更改丢失

git merge <branch1> --no-commit 

所以我得到了该分支的代码,我开始研究它。我没有将代码合并到只有主人。现在我已经完成了我的代码,并尝试从其他人那里获取更改。

git pull origin master 

我得到的错误说MERGE_HEAD存在请提交您的文件。所以我通过输入这些命令来提交代码。

git add . 
git commit -m "<commit message>" 

现在我试图通过重新设置代码来拉代码,正如我平时所做的那样。

git pull origin master --rebase 

现在一切都很好,承诺也看起来不错。所以我去了codebase并检查文件。我所有的改变都消失了。我在哪里做错了?我仍然不知道。请帮我找到最新的错误。先谢谢你。

+0

你可以在'git reflog'中找到你的改变吗? – choroba

+0

你必须在合并你的分支之前拉。合并前您还需要重新绑定。你有这个错误信息,因为你试图合并两个不同历史的分支 – Woody

+0

“现在一切都很好,提交也看起来不错,所以我去代码库和检查文件,我所有的更改都没有了” - 你能解释一下吗? ? “承诺看起来不错”是什么意思?你看到你的变化吗?那么,什么是“代码库”,哪里没有看到变化? – max630

以下是带给您的更改从分支到主步骤:

git checkout master 

就是要推动你的改变

git pull origin master 

分支检索您的团队的提交

git checkout your-branch 

检索您的分支

git rebase master 

检索主的所有提交,之后把你的变化

git checkout -b your-branch.1 

你不能犯上你的分公司本身你的遥控器是不一样的,你的本地分支作为底垫中改写历史

git push origin your-branch.1 

把你的分支,你准备合并

git checkout master 

即分支你想合并的地方

git merge --no-commit --squash your-branch.1 

合并您的分支与主。壁球将把你的所有提交放入一个。没有承诺将让你写一个不错的提交信息

git commit -m "here is my commit message" 

来样让你的团队成员你的变化是约

git push 

发布更改

+0

因此您正在为这些新更改创建新分支。为什么??我已经有了我的分支。那么为什么我应该创建一个新的分支?你能解释一下吗? –

+1

用master重新设置你的分支将改变提交的历史记录:你将获得所有来自master + yourrs的提交。但是,这些更改只适用于本地git分支,所以您的远程分支将获得不同的历史记录,并且git不会允许您因此推送本地分支。这就是为什么你必须创建一个新的分支(.1只是给出一个线索,而不是一个“新”版本) – Woody

git merge <branch1> --no-commit 

所以我得到了该分支的代码,我开始研究它。

这不是一个答案,但在这里你似乎做错了。通过不承诺,您正在将您的开发更改与以前的合并进行混合。这可能会造成更多的历史分析。

+0

我错误地理解了--no-commit的含义。所以我喜欢这样并开始编码。但在合并之前我更改代码时没有问题。所以我继续。现在我的代码已经不存在了,再次执行。 –