关于Git pull不确定

时间:2012-09-06 01:09:09

标签: git

我还是Git的新手,所以请原谅我的愚蠢。

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

2 个答案:

答案 0 :(得分:1)

由于git是一个分布式版本控制系统,它取决于您使用的信任模型。 正如你和他们在这种情况下可能都改变了主人并且你们(可能)都在做git pull origin master。当您执行此操作(或实际包含的git fetchgit merge)时,您基本上是说您相信其他人所做的任何更改,即其他已获得写入权限的人存储库。 所以这可能就是你今天所处的位置 我建议你考虑做一个交互式的rebase(例如git rebase -i HEAD~10),它也可以让你简单地删除历史记录的提交。我这样说而不是只是撤消最后一次提交,因为你需要提交你的更改,并拉出他现在将更旧的提交并且更难达到。但要谨慎使用rebase交互。我建议你在学习做这些事情时将整个项目备份到另一个目录。在提交和推送之前仔细检查结果。

未来有很多选择,所以不会再发生,这里有一些:

  • 在分支机构工作

  • 首先执行git fetch并检查在合并它们之前进入原始跟踪分支的更改。

  • 指定一人审核并批准更改

有关您的选项的更多信息,请参阅以下内容中的fetch merge和rebase选项:
git branch, fork, fetch, merge, rebase and clone, what are the differences?

答案 1 :(得分:0)

你能做的是

  • 在本地提交您的代码,然后拉一下
  • 更好的选择是进行git fetch,它将显示哪些文件将被合并
  • 你们两个人都有可能共同处理一些文件,如果你们在不同的行上工作,那么它们会以递归方式合并而不会发生冲突。
  • 如果存在冲突,请在考虑哪个是正确的情况下解决它们,然后再次提交已解析的文件。然后最后推送代码,您的更改已成功推送。