我对 Git 还很陌生,所以请原谅我的白痴。
我遇到了从远程存储库中提取更改的问题。我之前对特定文件进行了很多更改,而一个团队成员推送了一些根本不起作用的更改。让我感到困惑的是,我将如何防止他的更改改变我所做的事情?是否像撤消最后一次提交并从那里开始一样简单?
我对 Git 还很陌生,所以请原谅我的白痴。
我遇到了从远程存储库中提取更改的问题。我之前对特定文件进行了很多更改,而一个团队成员推送了一些根本不起作用的更改。让我感到困惑的是,我将如何防止他的更改改变我所做的事情?是否像撤消最后一次提交并从那里开始一样简单?
由于 git 是一个分布式版本控制系统,它取决于您使用的信任模型。在这种情况下,您和他们可能都更改了 master 并且您(可能)都在做git pull origin master
. 当您这样做(或git fetch
它git merge
实际上包含的)时,您基本上是在说您信任其他人所做的任何更改,即其他有权写入存储库的人。所以这可能就是你今天所处的位置。
我建议您考虑进行交互式变基(例如git rebase -i HEAD~10
) 这也可以让你简单地删除历史的提交。我这样说而不是仅仅撤消最后一次提交,因为您需要提交您的更改,并拉出他现在将是较旧的提交并且更难达到的内容。但是要非常谨慎地使用 rebase 交互。我建议您在学习执行此类操作时将整个项目备份到另一个目录。在提交和推送之前仔细检查结果。
有很多选择可以避免再次发生,这里有一些:
在分支机构工作
在git fetch
合并它们之前,首先检查被带入源跟踪分支的更改。
指定一人审核和批准变更
有关您的选项的更多信息,请参阅
git branch、fork、fetch、merge、rebase 和 clone 中的 fetch merge 和 rebase 选项,有什么区别?
你能做的是