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

How do I push a commit without destroying teammate work?

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

我没有意识到他和我同时编码——他说如果他拉我的提交那么他对相同文件的更改将会丢失。

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

对于糟糕的措辞和内容,我深表歉意,正如我所说,我是初学者,对这个话题一无所知。

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

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

I didn't realize that he was coding at the same time as me

欢迎来到真实的编程世界。这种情况发生 所有 次。

这是一个常见的问题,任何体面的版本控制系统都具有 built-in 自动 合并 更改的功能。 Git 在这方面非常强大,当更改发生在文件的不同部分时,第二个执行拉取操作的人(或 fetch/rebase)甚至不会注意到。您只会注意到当 git 无法合并自身时,您最终会遇到合并冲突,这需要人工注意。

What do we do now,

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

换句话说,真正的答案是:所有 与您一起工作的人是时候挑选一本关于 git 的好书了(像这样one) 并开始学习您正在使用的工具。你看,git 是一个非常强大但有时令人困惑的工具。如果你认真学习编程,那么你也必须认真学习这些工具。