`
jerry_chen
  • 浏览: 282590 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

本地git版本覆盖远程的方法

 
阅读更多

起因:现场开发和公司内部开发相结合,一段时间双方未同步,但可以肯定现场的代码最新,所以回公司后就拿本机代码覆盖远程仓库代码。

 

步骤如下:

 

首先,我远程仓库的config文件里设置过如下内容(默认新建的git仓库是不允许被修改的,所以这里放开修改权限):

[receive]   

denyCurrentBranch = ignore

 

其次,执行如下命令,用本地文件直接覆盖远程仓库:



 

 

参考了如下博客:http://minotes.net/notes/48

 

原文如下:

 

有时候由于某些误操作(如错误的将其他分支 merge 过来),导致远程分支错误,需要强制覆盖远程分支。可以使用命令 git push origin branch-name --force 来强制覆盖。

不过,基于安全性考虑,你的远程 git 可以禁止改操作,你可以通过修改远程仓库的 config 文件来临时允许覆盖操作:

[receive]
  denyNonFastforwards = false # change to false to enable overwriting

覆盖完成之后,记得把这个标志再改回 true ,以提高仓库的安全性,避免错误的覆盖操作。

注意 如果远程的代码仓库为多个人共享访问时,其他人的 push 操作可能会再次将错误的 merge 引入远程分支(因为其他人本地存放的分支仍然是旧的)。 除非事先和所有的成员沟通好,让大家将本地的错误分支删除,否则这种方式不可取 。

因此, 如果是团队开发,最好是使用 revert 命令来回滚 ,而不是覆盖。这样虽然历史记录不太干净,但是比较安全。回滚一个 merge 的命令如下:

git revert merge-commit-hash -m 1
  • 大小: 11.1 KB
分享到:
评论

相关推荐

    《Git版本控制管理(第2版)》

    - **内容全面**:本书共分为21章,覆盖了Git的基本使用方法到高级技巧的各个方面。 - **深入浅出**:不仅介绍了Git的操作指南,还深入剖析了Git的工作原理和技术细节,适合不同程度的学习者。 - **实用性强**:包含...

    git放弃本地修复 拉取线上覆盖 添加 .gitignore文件不起作用

    #### 一、Git放弃本地修复并拉取线上覆盖 在使用Git过程中,有时我们可能会遇到需要放弃本地修改并直接拉取远程仓库最新代码的情况。这种需求通常出现在本地开发环境出现问题或者需要快速同步最新代码进行紧急修复...

    Git版本控制管理 第2版

    总之,《Git版本控制管理(第2版)》是一本全面覆盖Git使用的书籍,不仅介绍了Git的基本操作和核心概念,还深入探讨了Git的高级特性和使用技巧,对于希望深入了解Git的开发者来说是非常有价值的资源。

    初学者必看,git同步本地代码到远程仓库

    这一步会将远程仓库的代码合并到本地仓库,但请注意,如果本地有文件,这可能会覆盖它们: ```bash git pull --rebase origin master ``` 一旦本地仓库和远程仓库同步,你可以将你的项目文件放入 `test` 文件夹。...

    版本工具git教程

    版本工具Git教程内容涵盖了Git的各个方面,从基本原理到实际应用,适合初学者从零开始学习Git。 首先,教程介绍了版本控制的概念,分为...整个教程内容结构清晰,知识点覆盖全面,是初学者掌握Git版本控制的理想教材。

    Git撤销使用方法,详细教学

    当你发现本地的修改与远程仓库存在冲突或者你希望与远程分支保持一致时,可以使用`git reset --hard origin/<分⽀名>`命令。这将把本地分支重置到远程仓库的最新状态,丢弃所有未提交的本地更改。在执行此操作前,...

    GIT版本使用说明.doc

    除了推送和拉取,还可以使用`git fetch`获取远程仓库的更新,而无需合并,以及`git push --force`强制推送覆盖远程仓库的版本。 11. **合并与重置** `git merge`用于合并分支,`git rebase`可以将一个分支的变更...

    git版本控制系统1

    - `git pull`:从远程仓库拉取最新的更改并合并到本地。 Git 是现代软件开发中的重要工具,它不仅提供了一种高效、安全的方式来管理代码,还促进了团队间的协作和代码审查,是版本控制领域的首选解决方案。

    史上最全的git解决冲突

    - 在弹出的对话框中,不要勾选`Force overwrite branch in remote if exists and has diverged`选项,以免覆盖远程仓库中的代码。 - 点击`OK`完成提交。 2. **解决冲突操作:** - 在`Synchronized Workspace`后...

    Git+版本管理+Git学习资料

    - `git pull`:从远程仓库获取最新更改并合并到本地。 9. **标签管理**: 通过`git tag`命令可以给特定的提交打标签,方便日后快速定位。 掌握这些基础操作后,你就能有效地使用Git进行版本控制和团队协作。随着...

    GIT小黄桶(MyEcilpse)

    - **git pull**:从远程仓库拉取最新改动并合并到本地。 - **git merge**:合并指定分支到当前分支。 - **git branch**:列出所有分支,创建或切换分支。 3. **SourceTree与MyEclipse集成**: - 在MyEclipse中...

    git - 简明指南

    - **强制推送:** 使用`git push --force`覆盖远程仓库的更改。 ### 处理错误 - **撤销工作目录的更改:** 使用`git checkout -- <文件名>`撤销工作目录中的更改,使其回到最近一次提交的状态。 - **重置本地分支...

    git使用方法.pdf

    文档内容覆盖了Git的基础使用方法,包括账户注册、Git工具的安装和配置、开发环境的搭建、以及如何与团队协作进行代码的版本控制。对于初次接触Git的开发者而言,文档详细地介绍了每一步操作,帮助他们能够顺利地...

    Git-2.39.0-64-32(版本构建于2022-12-12)

    - **克隆与远程仓库**:通过克隆远程仓库,用户可以获取项目的所有历史,然后进行本地开发,并将更改推送到远程仓库。 2. **Git-2.39.0的主要特性** - **新功能**:每个新版本都会引入一些新特性,例如增强的交互...

    idea中git更新代码到本地之后自己写的代码不见了.docx

    1. **使用本地Git历史记录**:IntelliJ IDEA内置了查看本地Git历史的功能。当你发现自己的代码被意外覆盖或者丢失时,可以通过`VCS` -> `Git` -> `Show History`(或使用快捷键)来查看文件的历史版本。在历史记录中...

    git使用简介ppt

    - `git checkout <file>`:从版本库中取出文件覆盖当前文件。 - **版本控制命令**: - `git commit -m "message"`:提交暂存区的所有更改到版本库。 - `git diff`:显示暂存区与工作目录之间的差异。 - `git ...

    Git push 常见用法

    在某些情况下,当你希望强行覆盖远程分支的内容时,可以使用 `--force` 选项。这通常用于当本地分支的提交历史与远程分支不同步时,且你确定自己的更改没有问题的情况下使用。 - **推送标签** ``` git push ...

    git for windows中文汉化

    这个汉化包是基于Git的源代码2.17.0版本编译而成,并且对部分界面进行了中文本地化处理,使得不熟悉英文的用户也能轻松上手。 Git是一种分布式版本控制系统,由Linux创始人Linus Torvalds开发,用于管理Linux内核的...

Global site tag (gtag.js) - Google Analytics