re-base

git提交被拒绝 non-fast-forward 与 pull 强制覆盖本地的代码

∥☆過路亽.° 提交于 2020-08-16 12:20:27
git pull 强制覆盖本地的代码方式,下面是正确的方法: git fetch --all 然后,你有两个选择: git reset --hard origin/master 或者如果你在其他分支上: git reset --hard origin/<branch_name> 说明: git fetch从远程下载最新的,而不尝试合并或rebase任何东西。 然后git reset将主分支重置为您刚刚获取的内容。 --hard选项更改工作树中的所有文件以匹配origin/master中的文件。 在使用git的过程中,我们总会遇到提交冲突问题。在今天更新git提交时,由于之前没有更新分支,同时又提交了分支中的代码,而git不能在不丢失提交的情况下对远程库进行修改,这就导致了再次提交代码是无法push成功的情况。 git提交被拒绝,提示(non-fast-forward); 解决方法: 1. git fetch origin master 获取远程分支master的修改 2. git merge origin master 合并远程分支debug 3. git pull origin master 更新本地分支 这个时候提示文件有冲突,手动解决以下就可以了。 来源: oschina 链接: https://my.oschina.net/amoswork/blog/4408850

Git拒绝合并基础上无关的历史记录

♀尐吖头ヾ 提交于 2020-08-16 04:25:09
问题: During git rebase origin/development the following error message is shown from Git: 在 git rebase origin/development 过程中,Git显示以下错误消息: fatal: refusing to merge unrelated histories Error redoing merge 1234deadbeef1234deadbeef My Git version is 2.9.0. 我的Git版本是2.9.0。 It used to work fine in the previous version. 以前在以前的版本中可以正常工作。 How can I continue this rebase allowing unrelated histories with the forced flag introduced in the new release? 如何在新版本中引入强制标记的情况下继续进行此基础更改,以允许不相关的历史记录? 解决方案: 参考一: https://stackoom.com/question/2ZBOy/Git拒绝合并基础上无关的历史记录 参考二: https://oldbug.net/q/2ZBOy/Git-refusing-to-merge

你什么时候使用git rebase而不是git merge?

混江龙づ霸主 提交于 2020-08-15 14:09:34
问题: When is it recommended to use git rebase vs. git merge ? 什么时候建议使用 git rebase 与 git merge ? Do I still need to merge after a successful rebase? 成功改造后我还需要合并吗? 解决方案: 参考一: https://stackoom.com/question/3NBb/你什么时候使用git-rebase而不是git-merge 参考二: https://oldbug.net/q/3NBb/When-do-you-use-git-rebase-instead-of-git-merge 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4304431

Git工作使用笔记

怎甘沉沦 提交于 2020-08-15 03:35:49
分离头指针 当前分支图 切换到之前的某一次提交 执行命令 $ git checkout de11fa87ea 复制代码 提示,当前位于“分离头指针”状态 分支图 注意 在分离头指针状态下没有绑定分支 产生的commit不会被保存 分支切换后在分支图中看不到该commit 一段时间 后会被git自动清除 使用场景 尝试性做一些变更,可以随时丢弃 此处演示分离头指针丢失commit的情况和补救措施 丢失commit 使用IDE修改文件并提交,忽略所有警告,修改后分支图如下 此时接到其他需求,需要切换分支进行紧急修复 执行命令 $ git checkout master 复制代码 分支切换成功,并弹出提示和告警 Warning: you are leaving 1 commit behind, not connected to any of your branches: 199ac20 游离状态修改文件 If you want to keep it by creating a new branch, this may be a good time to do so with: git branch 199ac20 Switched to branch 'master' Your branch is up to date with 'origin/master'. 此时查看分支图

Git入门学习笔记

我是研究僧i 提交于 2020-08-13 15:17:10
实用场景 场景1: 多人开发同一个业务,合并别人代码到自己分支 branch0->branchA |->branchB [branchA] > git rebase branchB [branchA] > 处理冲突 [branchB] > git merge branchA [branchB] > git push 分支的整合:git rebase Or git merge 来源: oschina 链接: https://my.oschina.net/u/4323704/blog/4479115

git命令行操作

久未见 提交于 2020-08-12 09:10:46
1、克隆远程仓库 git clone [仓库地址] ,但是这样只能克隆master分支的代码,如果我想克隆远程仓库中某一分支的代码怎么办呢?git clone -b [对应的远程分支名称] [仓库地址] 。   如克隆aspnetcore的3.0分支:git clone -b 3.0 https://github.com/dotnet/aspnetcore.git 2、本地切换分支,这里分几种场景:   1)要切换的分支存在,直接使用 git checkout [要切换的分支]   2)要切换的分支不存在,git checkout -b [要切换的分支],如本地仓库切换一个新的开发分支,该分支是为了开发数据统计功能,则可以这样切换:git checkout -b feature/data-statistics 【分支命名规范:需求特性开发可以使用feature/..;平时bug修复可以使用bugfix/..;线上紧急bug修复可以使用hotfix/..】   3) 上述切换方式为本地创建分支,该分支没有对应远程分支,若需要对应远程分支,则需要设置 git branch --set-upstream-to=origin/data-statistics data-statistics 。若想在创建分支的时候就对应怎么办呢?可以使用git checkout -b data

功能分支重新设置后,Git推送被拒绝

两盒软妹~` 提交于 2020-08-12 03:40:00
问题: OK, I thought this was a simple git scenario, what am I missing? 好的,我以为这是一个简单的git场景,我缺少什么? I have a master branch and a feature branch. 我有一个 master 分支和一个 feature 分支。 I do some work on master , some on feature , and then some more on master . 我在 master 上做一些工作,在 feature 上做一些,然后再在 master 上做更多的工作。 I end up with something like this (lexicographic order implies the order of commits): 我最终得到这样的东西(字典顺序暗示着提交的顺序): A--B--C------F--G (master) \ D--E (feature) I have no problem to git push origin master to keep the remote master updated, nor with git push origin feature (when on feature ) to maintain a

将Git分支合并到master中的最佳(最安全)方法是什么?

懵懂的女人 提交于 2020-08-12 00:54:32
问题: A new branch from master is created, we call it test . 从 master 创建了一个新分支,我们称之为 test 。 There are several developers who either commit to master or create other branches and later merge into master . 有几个开发人员要么致力于 master 要么创建其他分支,然后合并成 master 。 Let's say work on test is taking several days and you want to continuously keep test updated with commits inside master . 假设 test 工作需要花费几天的时间,并且您希望通过 master 内的提交来不断更新 test 。 I would do git pull origin master from test . 我会做 git pull origin master 从 test 。 Question 1: Is this the right approach? 问题1: 这是正确的方法吗? Other developers could have easily worked

Git 常用操作汇总 -cheat sheet

折月煮酒 提交于 2020-08-11 20:50:29
0. 前言 大家好,我是多选参数的程序锅,一个正在 neng 操作系统、学数据结构和算法以及 Java 的硬核菜鸡。到今天为止,关于 Git 的大坑算是给填上了。但是 Git 这个系列并不会结束,程序锅偶尔看到比较好的关于 Git 的文章也会整理一番发出来,争取在 Git 的坑上再长棵树。 1. 常用命令 1.1. git 配置 # 显示 config 的配置 加--list # 优先级:local > global > system git config --list --local # local 的范围是某个仓库 git config --list --global # global 的范围是登录的用户 git config --list --system # system 的范围是系统所有登录的用户 # 配置用户 name 和 email git config --global user.name 'your_name ' git config --global user.email 'your_email@domain.com' # 清除配置信息 git config --unset --global user.name 1.2. 仓库初始化 # 将执行该命令时所在的目录初始化为一个 git 仓库(如:进入某目录后执行该命令会将该目录初始化为一个 git 仓库) git

完美生活:git rebase -i

a 夏天 提交于 2020-08-11 18:12:50
让大家觉得你一次就能写出完美的代码,并让你的补丁更容易审核和合并。 软件开发是混乱的。有很多错误的转折、有需要修复的错别字、有需要修正的错误、有需要稍后纠正的临时和粗陋的代码,还有在以后的开发过程中发现一次又一次的问题。有了版本控制,在创建“完美”的最终产品(即准备提交给上游的补丁)的过程中,你会有一个记录着每一个错误转折和修正的原始记录。就像电影中的花絮一样,它们会让人有点尴尬,有时也会让人觉得好笑。 如果你使用版本控制来定期保存你的工作线索,然后当你准备提交审核的东西时,又可以隐藏所有这些私人草稿工作,并只提交一份单一的、完美的补丁,那不是很好吗? git rebase -i ,是重写历史记录的完美方法,可以让大家觉得你一次就写出了完美的代码! git rebase 的作用是什么? 如果你不熟悉 Git 的复杂性,这里简单介绍一下。在幕后,Git 将项目的不同版本与唯一标识符关联起来,这个标识符由父节点的唯一标识符的哈希以及新版本与其父节点的差异组成。这样就形成了一棵修订树,每个签出项目的人都会得到自己的副本。不同的人可以把项目往不同的方向发展,每个方向都可能从不同的分支点开始。 左边是 origin 版本库中的主分支,右边是你个人副本中的私有分支。 有两种方法可以将你的工作与原始版本库中的主分支整合起来:一种是使用合并: git merge ,另一种是使用变基: git