如何在不破坏队友工作的情况下推动提交?

问题描述

我是Git的新手,而今天在我的uni项目中遇到的问题如下:

  • 我对某些文件做了一些更改,提交并推送到我们的GitHub存储库中。
  • 我告诉队友我做了提交,他抱怨说现在他不能提交更改。

我没有意识到他和我在同一时间进行编码-他说,如果他拉我的提交,那么他对相同文件的更改将丢失。

我们现在该怎么办,我只是告诉他将这些文件复制到他的驱动器中的另一个位置,然后“组合”更改吗?将来如何避免这种情况?

很抱歉,我的措辞和内容不佳,我是个初学者,对这个话题一无所知。

解决方法

您和您的队友可以使用相同的存储库拥有不同的分支。

git checkout master
git checkout -b 'yourBranch' #this branch for you

git checkout master
git checkout -b 'aliceBranch' #this branch for your friend

# when your done,push to related branch
git push origin <branchName>

git-scm.com/docs

,

我没有意识到他和我同时在编码

欢迎来到编程的真实世界。这种情况一直发生。

这是一个常见的问题,任何体面的版本控制系统都具有内置功能,可以自动合并。 Git的功能非常强大,当更改位于文件的不同部分时,进行拉取(或获取/重新设置基准)的第二个人甚至不会注意到。您只有在git无法自身合并时才注意到,然后您会遇到合并冲突,这需要人类的注意。

我们现在该怎么办

让我们假设您的同事执行的git pull失败了,因为您推送了影响其中某些文件的更改。现在,每个文件将包含有关冲突更新的信息。像Visual Studio代码这样的体面编辑器会显示所有这些冲突,并允许您选择此版本或相应版本的代码。转到this,然后阅读有关“合并冲突”的部分。

换句话说,真正的答案是:现在该是所有与您一起工作的人来找一本有关git的好书了(例如one)并开始学习您正在使用的工具。您会看到,git是一个非常强大的工具,有时会造成混淆。如果您认真学习编程,那么也必须认真学习此类工具。