git - 什么是 merge 冲突?

标签 git merge

什么是 merge 冲突?
大多数问题都涉及解决 merge 冲突,例如 this一个。

但我不知道为什么它会发生在我身上......


简而言之,我们被告知:

git clone url ~/lab

现在我们必须编辑这些文件,然后提交更改。


对于第二个作业,我们需要执行以下操作:

 git commit -am 'changes to lab1 after handin'
 git pull
 git checkout -b lab2 origin/lab2
 git merge lab1

现在我的合作伙伴向我发送了他的 lab1 文件。这样我就可以处理他的代码,因为它更干净、更有组织。

git status
>>> nothing to commit, working directory clean

然后我删除所有文件

git status
>>> list of deleted files

git commit -am 'delete my files'
git status
>>> nothing to commit, working directory clean

然后我将他的文件提取到我的目录

git status
>>> list of untracked files in red
git add .
git status
>>> Changes to be commit and the list of files in green
git commit -am 'teammate files'
git status
>>> nothing to commit, working directory clean

现在 TA 命令

git commit -am 'changed branch'
git pull 
>>> Already up-to-data. (As expected!!)
git checkout -b lab2 origin/lab2
>>> On branch lab2 
git merge lab1
>>> almost all files failed merge and have conflict

有什么解释为什么会发生这种情况吗?我怎样才能防止这种情况发生? 我害怕自己这样做,因为我可能会删除不应该删除的代码......所以我宁愿 git merge 自己工作。

最佳答案

当您的更改(需要覆盖远程存储库上的内容,将其命名为 master 或您将更改推送到的分支)与团队中另一个人的更改(自上次您 pull 以来他的更改)发生冲突时,就会发生 merge 冲突会覆盖您尝试推送的更改,或者您将覆盖他的更改)。通常您可以通过 merge 来解决此冲突。您应该能够看到远程更改、您的更改和结果。您可以选择要删除/添加/保留代码的哪些部分。

关于git - 什么是 merge 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43809309/

相关文章:

git - "cannot pull into a repository with state: merging_resolved"

android - map : merging multiple different-size drawables

git - 如何压缩中间有 merge 提交的提交?

Windows 10 上的 Git Bash 忽略 Ctrl + C

git - 如何使用 Git 设置特定于文件的默认 merge 策略?

SVN/子剪辑 : Returning from a branch to the trunk

python - 如何在python中合并具有不同数据类型的相同值数据框

git - 如何在 git log 中查看每个文件更改的行数

ruby-on-rails - 无法推送到 heroku - 捆绑程序失败

git - git-rev-list 的排序