不太清楚Git pull

不太清楚Git pull,git,Git,我对Git还相当陌生,所以请原谅我的白痴 我遇到了从远程存储库提取更改的问题。我以前对一个特定的文件做了很多更改,一个团队成员推动了一些根本不起作用的更改。让我困惑的是,我该如何防止他的改变改变我所做的?它是否像撤消最后一次提交并从那里开始一样简单?由于git是一个分布式版本控制系统,它取决于您使用的信任模型。 在本例中,您和他们可能都更改了主控形状,并且您(可能)都在做git-pull-origin-master。当您这样做时(或它实际包含的git fetch和git merge),您基本上是

我对Git还相当陌生,所以请原谅我的白痴


我遇到了从远程存储库提取更改的问题。我以前对一个特定的文件做了很多更改,一个团队成员推动了一些根本不起作用的更改。让我困惑的是,我该如何防止他的改变改变我所做的?它是否像撤消最后一次提交并从那里开始一样简单?

由于git是一个分布式版本控制系统,它取决于您使用的信任模型。 在本例中,您和他们可能都更改了主控形状,并且您(可能)都在做
git-pull-origin-master
。当您这样做时(或它实际包含的
git fetch
git merge
),您基本上是在说您信任其他人所做的任何更改,即被授予写入存储库权限的其他人。 所以这可能就是你今天的处境。
我建议你考虑做一个交互式的RealBASE(例如,代码> Git ReBase-我的头~ 10版/代码>),这也会让你简单地删除历史的提交。我这样说,而不仅仅是撤消最后一次提交,因为您需要提交您的更改,并拉他的更改,这将是更旧的提交,更难达到。但使用rebase interactive时要非常小心。我建议您在学习做这些事情时,将整个项目备份到另一个目录。在提交和推送结果之前,仔细检查结果

未来有很多选择,这样就不会再发生类似情况,以下是一些:

  • 分公司工作

  • 首先执行git fetch,并在将更改合并到源跟踪分支之前检查这些更改

  • 指定一人审查和批准变更

有关选项的更多信息,请参阅中的获取合并和重定基础选项:

由于git是一个分布式版本控制系统,它取决于您使用的信任模型。 在本例中,您和他们可能都更改了主控形状,并且您(可能)都在做
git-pull-origin-master
。当您这样做时(或它实际包含的
git fetch
git merge
),您基本上是在说您信任其他人所做的任何更改,即被授予写入存储库权限的其他人。 所以这可能就是你今天的处境。
我建议你考虑做一个交互式的RealBASE(例如,代码> Git ReBase-我的头~ 10版/代码>),这也会让你简单地删除历史的提交。我这样说,而不仅仅是撤消最后一次提交,因为您需要提交您的更改,并拉他的更改,这将是更旧的提交,更难达到。但使用rebase interactive时要非常小心。我建议您在学习做这些事情时,将整个项目备份到另一个目录。在提交和推送结果之前,仔细检查结果

未来有很多选择,这样就不会再发生类似情况,以下是一些:

  • 分公司工作

  • 首先执行git fetch,并在将更改合并到源跟踪分支之前检查这些更改

  • 指定一人审查和批准变更

有关选项的更多信息,请参阅中的获取合并和重定基础选项:
你能做的是

  • 在本地提交代码,然后进行拉取
  • 更好的选择是执行git获取,它将显示要合并的文件
  • 有一种可能性,你们两个都在处理一些共同的文件,但如果你们在不同的行上工作过,那么他们会递归地合并,没有冲突
  • 如果存在冲突,请考虑哪一个是正确的来解决冲突,然后再次提交已解决的文件。然后最后推送代码,您所做的更改将被成功推送
    • 你能做的是

      • 在本地提交代码,然后进行拉取
      • 更好的选择是执行git获取,它将显示要合并的文件
      • 有一种可能性,你们两个都在处理一些共同的文件,但如果你们在不同的行上工作过,那么他们会递归地合并,没有冲突
      • 如果存在冲突,请考虑哪一个是正确的来解决冲突,然后再次提交已解决的文件。然后最后推送代码,您所做的更改将被成功推送

      谢谢你的提示-我真的很感激!谢谢你的提示-我真的很感激!