git同一个文件,该文件中的不同内容git合并时会发生什么

git同一个文件,该文件中的不同内容git合并时会发生什么,git,git-merge,Git,Git Merge,我有两个分支(硕士和发展)。在这两个分支中,我都有nginx.conf。现在,在master分支中,我需要使nginx.conf与将在development分支中的nginx.conf不同 1) 我可以在多个分支中拥有具有不同内容的相同文件吗 2) 有时我需要将开发合并到主分支中。届时会发生什么?是否有可能开发分支的nginx.conf被合并到master的nginx.conf中,master的nginx.conf将更改为开发的nginx.conf 3) 这方面的最佳实践是什么?当您在文件发生分

我有两个分支(硕士和发展)。在这两个分支中,我都有nginx.conf。现在,在master分支中,我需要使nginx.conf与将在development分支中的nginx.conf不同

1) 我可以在多个分支中拥有具有不同内容的相同文件吗

2) 有时我需要将开发合并到主分支中。届时会发生什么?是否有可能开发分支的nginx.conf被合并到master的nginx.conf中,master的nginx.conf将更改为开发的nginx.conf


3) 这方面的最佳实践是什么?

当您在文件发生分歧后尝试第一次合并文件时,git将尝试将文件更改从开发转移到主文件。。。。您可以修改修订以还原该更改,也可以使用--no commit运行,以便在提交之前执行该反转。。。。在这之后,如果文件在dev上没有更改,git在合并时就不会再尝试从dev带来更改了。。。。您应该保留一个示例文件,而不是真实的文件。。。但是,从“技术”的角度来看,你会遇到什么情况。

当你在文件发生分歧后尝试第一次合并文件时,git将尝试将文件从开发更改为主文件。。。。您可以修改修订以还原该更改,也可以使用--no commit运行,以便在提交之前执行该反转。。。。在这之后,如果文件在dev上没有更改,git在合并时就不会再尝试从dev带来更改了。。。。您应该保留一个示例文件,而不是真实的文件。。。但是,从“技术”视角来看,你会看到什么。我觉得,最好创建特定于环境的单独文件,如nginx.dev.conf、nginx.prod.conf等,并让你的捆绑工具担心在哪个阶段需要获取哪个文件。它使事情变得简单


跨分支使用具有不同内容的相同文件会增加合并过程中的复杂性,必须使用此处另一个答案中提到的方法来解决这一问题。

我觉得,最好创建特定于环境的单独文件,如nginx.dev.conf、nginx.prod.conf、,等等,并让您的捆绑工具担心在哪个阶段需要拾取哪个文件。它使事情变得简单


跨分支使用具有不同内容的相同文件会增加合并过程中的复杂性,必须使用此处另一个答案中提到的方法解决此问题。

谢谢。你能评论一个命令吗?这个命令从开发中合并到主控所有文件,但不是我想要的那个。例如,我站在master branch上打字。GitMerge开发——不要merge=nginx.conf(类似的东西)。我认为这是不可能的。您可以这样做:
git checkout master&&git merge--no commit development&&git checkout HEAD--some-file.txt&&git commit-m“这是一个来自开发的合并”
此时(根据前面的注释),HEAD仍然指向master的最后一个版本,因为合并尚未完成,所以你是从master那里按原样提取文件的。还有其他方法不需要吗?谢谢。你能评论一个命令吗?这个命令从开发中合并到主控所有文件,但不是我想要的那个。例如,我站在master branch上打字。GitMerge开发——不要merge=nginx.conf(类似的东西)。我认为这是不可能的。您可以这样做:
git checkout master&&git merge--no commit development&&git checkout HEAD--some-file.txt&&git commit-m“这是一个来自开发的合并”
此时(根据前面的注释),HEAD仍然指向master的最后一个版本,因为合并尚未完成,所以你现在是从master那里提取文件的。还有其他不需要的方法吗?