如何处理git中的合并/拉入

如何处理git中的合并/拉入,git,merge,pull,Git,Merge,Pull,我必须使用不同的电脑。我在一个文件中更新了文件A、B和其他文件,在另一个文件中更新了文件B、C和其他文件 文件B中的更新是代码的不同部分。我在这两方面都作出了承诺。 我把A和B推到github 问题: 现在我在另一个世界该怎么办 我应该拉吗?还是我应该先推 如果我按下,文件A会被覆盖吗 如果我拉,文件C会被覆盖吗 我需要采取什么样的流程 我需要如何处理版本不同的文件B?我可以合并它们吗 拉->重设基础->推送:您必须先拉,这样您添加的内容就位于服务器中的内容之上。拉取后(将先前推取的MOD与本

我必须使用不同的电脑。我在一个文件中更新了文件A、B和其他文件,在另一个文件中更新了文件B、C和其他文件

文件B中的更新是代码的不同部分。我在这两方面都作出了承诺。 我把A和B推到github

问题:

  • 现在我在另一个世界该怎么办

  • 我应该拉吗?还是我应该先推

  • 如果我按下,文件A会被覆盖吗

  • 如果我拉,文件C会被覆盖吗

  • 我需要采取什么样的流程

  • 我需要如何处理版本不同的文件B?我可以合并它们吗


拉->重设基础->推送:

您必须先拉,这样您添加的内容就位于服务器中的内容之上。拉取后(将先前推取的MOD与本地MOD合并),即可推取。 顺便说一句:这不是github,这是纯git。我建议阅读以下书籍来理解git工作原理:


通常的情况是,在推送更改之前先进行拉取操作。但可能的情况是,您提交的当前祖先与上次拉取时相同(即,所有其他祖先尚未推送任何内容),这意味着不需要合并,您只需推送更改而无需拉取

一旦其他人在这两者之间推送了他们的更改,那么您总是必须将他们的更改拉到您的更改中(这就是git创建所谓的合并提交的地方,这是一种提交,它不是通过git add、git commit等常规方式创建的)。现在,您的存储库已与最新更改同步,您可以安全地推送中心存储库与您的同步

在这种情况下,您必须首先拉取,这意味着不会覆盖C,因为两个存储库都有相同的版本(请记住,您只在两个repo上更改了B)

在B的情况下,有两个不同的版本必须由git合并,可能存在冲突。但这正是pull的含义,它是一个fetch(同步存储库)和跟踪远程分支的本地分支之间的合并,例如master与origin/master合并

最后,同样的事情也会发生在A上,在第一次回购中对A所做的更改将是一个简单的合并到另一个存储库中的A中,因为修改后的A是从另一个回购中A的相同版本(相同的blob)修改而来的

希望这能澄清一些事情


干杯

我只想指出,如果你必须先做一个拉动,那么推动就会失败。