我还是Git的新手,所以请原谅我的愚蠢。
我遇到了从远程存储库中提取更改的问题。我以前对特定文件做了很多更改,团队成员推动了一些根本不起作用的更改。令我困惑的是,我如何阻止他的改变改变我所做的事情?它是否像撤消上次提交并从那里一样简单?
答案 0 :(得分:1)
由于git是一个分布式版本控制系统,它取决于您使用的信任模型。
正如你和他们在这种情况下可能都改变了主人并且你们(可能)都在做git pull origin master
。当您执行此操作(或实际包含的git fetch
和git 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)
你能做的是