首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【工具】Git 常用操作 - 备忘录

,放弃所有修改,从上次保存文件开始编辑 2、给一条已经提交记录,额外新添加更多修改 比如我已经提交了一条记录,新增一个文件 1.txt 但是后面发现提交了一个文件 2.txt,现在要把 2....这个时候肯定是无法直接吞并 分支 A ,需要用到非快进模式,就是下一个指令会做 也即是,快进模式 只有 分离出分支之后 没有任何提交 分支适用 举例就是 分支 B 分离 出 分支 C,然后分支...举个例子 比如 分支A 上有提交 3,4,5,6 四个提交只要把 其中 4 和5 合并到 master 1、切换到分支 A git checkout A 2、开始rebase,git rebase...上面的图中出现三个提交,这里提交是从旧到新,就是要改倒数第三个提交是 这个界面显示一个(对比下 git log 显示提交) ?...查看日志,已经不见那个提交了 ? 3多个 commit 合并为一个 看例子,要把 master 最新三个提交合成一个 ? ?

42931

git版本回退, github版本回退

) # 结论放开头 - 不要在公共分支做reset, 不要修改公共分支历史  - 使用revert不会改变历史,只是增加一个版本 1.reset 几个月前,提交了一次更改,这个更改涉及几十个文件,提交到...看着报错毫无头绪,不明白health check究竟是因为代码哪部分造成,这提醒以后错误日志一定要详细。但有一点是肯定,这次提交更改有问题。既然一次代码没问题,那就回退吧。...也就是master历史中已经包含了这个版本,所以不用merge。 因此,如果想要合并分支,那么要合并分支必须当前分支版本先进。显然,reset只能重置本地或者分支更改。...那么,如果想要mater回退,必须提交一个mater先进而且内容正好一次提交相反修改。这就是revert干的事情。 2.revert revert指定版本可以实现版本回退。...这个不是像reset一样指针回退,而是会创建一个提交,而且将指定版本修改逆过来。这样,我们想回退内容被逆反修改过来了,而且我们版本master先进。这样就可以直接提交了。 ? ?

1.8K60
您找到你想要的搜索结果了吗?
是的
没有找到

Git合并不同url项目

摘要:为了让项目能实现Git+Gerrit+Jenkin持续集成,我们把项目从Git迁移到了Gerrit,发现有的同事Git提交代码,因为Gerrit做了同步,Gerrit上有新提交时候就会刷新老...这个时候就必须要在两个相似项目之间合并提交了。...gitoa_web/master合并项目 gitoa_web是指代仓库,master指代分支,当然如果有需要也可以合并别的分支过来 [报错] 发现不同email地址错误不能成功提交 因为这个commit...不是 [修正错误] 把email地址更新成提交就成功 保留原有的commit用户 在上一节我们 先使用命令git remote add [shortname] [url]将老Git url...因为项目合并老项目的代码,对于新项目来说是新代码提交,所以只允许你一个人来提交 如果在老项目,给新项目推代码这种顺序就是已有代码推到已有仓库 小结 知识点: git merge还可以合并其他项目的到本项目

2.3K230

Git 不要只会 pull 和 push,学学这 5 条提高效率命令

一般我们使用 reset 命令时,git reset –hard 会被提及比较多,它能让 commit 记录强制回溯到某一个节点。...应用场景 1:有时候版本一些优化需求开发到一半,可能其中一个开发完需求临时,或者某些原因导致开发需求卡住了已开发完成需求上线,这时候就需要把 commit 抽出来,单独处理。...应用场景:应用场景:有一天测试突然跟你,你开发上线功能有问题,需要马上撤回,否则会影响到系统使用,这时可能会想到用 reset 回退,可是你看了看分支最新提交还要其它同事代码,用 reset...revert 合并提交 git commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。现在 master 分支里多了条合并提交。...因为使用 revert 后,v2.0 分支 commit 还是会保留再 master 分支记录中,当你再次合并进去时,git 判断有相同 commitHash,就忽略相关 commit 需改内容

43020

Git 小手记

重新在当前分支做一遍.既然是重新做一遍, 那么 commit hash 肯定会改变.这个操作就很不妙, 因为比如你是 master 分支做 rebase, 通俗地, 你是master ...这样操作公共分支是非常危险, 比如原本 master A commit 很多人基于这个 commit 开展很多工作, 然后你 master 分支做了 rebase, A 就变成了 A...commit hash 已经不同, git 会认为这是一个提交, 然后像新 commit 一样提交到仓库里面, 这样可以 master 分支已经分叉, 因为别人 master 分支和你已经不一样..., 而相反在这样 feature 分支做 rebase 是被提倡, 比如同事提交了几个 commit, 你也有几个分支需要提交, 那么你只需要 git fetch, 然后 git rebasse..., 意思就是将你 commit 移到远程同事已经提交 commit 后面, 对没错, 就是使用 git fetch + git rebase 代替 git fetch + git merge

53320

Git 不要只会 pull 和 push,试试这 5 条提高效率命令

应用场景1:有时候版本一些优化需求开发到一半,可能其中一个开发完需求要临时,或者某些原因导致待开发需求卡住了已开发完成需求上线。这时候就需要把 commit 抽出来,单独处理。...还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支。先把起点c和终点e commitHash 记下来。 切到 master 分支,使用区间cherry-pick。...这时可能会想到用 reset 回退,可是你看了看分支最新提交还有其他同事代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 git commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 现在 master 分支里多了条合并提交。...git revert -m 1  revert 合并提交后,再次合并分支会失效 还是上面的场景, master 分支 revert 合并提交后,然后切到 feature 分支修复好

1.1K20

Git 不能只会 pull 和 push,试试这5条提高效率命令吧!

应用场景1:有时候版本一些优化需求开发到一半,可能其中一个开发完需求要临时,或者某些原因导致待开发需求卡住了已开发完成需求上线。这时候就需要把 commit 抽出来,单独处理。...还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支。先把起点c和终点e commitHash 记下来。 切到 master 分支,使用区间cherry-pick。...这时可能会想到用 reset 回退,可是你看了看分支最新提交还有其他同事代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 git commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 现在 master 分支里多了条合并提交。...git revert -m 1    revert 合并提交后,再次合并分支会失效 还是上面的场景, master 分支 revert 合并提交后,然后切到 feature 分支修复好

51520

Git 5条提高效率命令

这需要您工作树清洁(没有从头提交修改)。 将已经提交 commit,复制出新 commit 应用到分支里 应用场景 commit 都提交了,为什么还要复制新出来?...应用场景:有时候版本一些优化需求开发到一半,可能其中一个开发完需求要临时,或者某些原因导致待开发需求卡住了已开发完成需求上线。这时候就需要把 commit 抽出来,单独处理。...checkout master git checkout -b branch2 把旧分支某个commit释放到新分支 git cherry-pick a2dd8ac380f0110629a7aa42727ea6947da56cb6...这时可能会想到用 reset 回退,可是你看了看分支最新提交还有其他同事代码,用 reset 会把这部分代码也撤回了。...没办法,reset --hard 是强制回退,找不到 commitHash ,只能让同事从本地分支再推一次(同事瞬间拳头就硬了,怎么又是你)。于是,你技术形象又一落千丈。

18120

Git 不要只会 pull 和 push,学学这 5 条提高效率命令(下)

应用场景:应用场景:有一天测试突然跟你,你开发上线功能有问题,需要马上撤回,否则会影响到系统使用,这时可能会想到用reset回退,可是你看了看分支最新提交还要其它同事代码,用reset会把这部分代码也撤回了...revert合并提交gitcommit记录里,还有一种类型是合并提交,想要revert合并提交,使用上会有些不一样。现在master分支里多了条合并提交。...revert合并提交后,再次合并分支会失效还是上面的场景,master分支revert合并提交后,然后切到v2.0分支修复好bug,再合并到master分支时,会发现之前被revert修改内容没有重新合并进来...因为使用revert后,v2.0分支commit还是会保留再master分支记录中,当你再次合并进去时,git判断有相同commitHash,就忽略相关commit需改内容。...应用场景:应用场景:某天你眼花,发现自己在其它人分支提交了代码还推到远程分支,这时因为分支只有你最新提交,就想着使用reset –hard,结果紧张不小心点错了commitHash,reset过头,把同事

35320

Git 不能只会 pull 和 push,试试这5条提高效率命令吧!

应用场景1:有时候版本一些优化需求开发到一半,可能其中一个开发完需求要临时,或者某些原因导致待开发需求卡住了已开发完成需求上线。这时候就需要把 commit 抽出来,单独处理。...还是 feature 分支,现在需要把 c、d、e 都复制到 master 分支。先把起点c和终点e commitHash 记下来。 切到 master 分支,使用区间cherry-pick。...这时可能会想到用 reset 回退,可是你看了看分支最新提交还有其他同事代码,用 reset 会把这部分代码也撤回了。...revert 合并提交 git commit 记录里,还有一种类型是合并提交,想要 revert 合并提交,使用上会有些不一样。 现在 master 分支里多了条合并提交。...git revert -m 1    revert 合并提交后,再次合并分支会失效 还是上面的场景, master 分支 revert 合并提交后,然后切到 feature 分支修复好

39140

动图学CS: 有用 Git 命令(

尽管 Git一个非常强大工具,但是相信大部分同学有时候学起 Git 来,感觉很难搞~ 笔者总是习惯于脑海中重现学习知识,Git 也一样:当我们执行了切换分支命令,分支之间是如何交互?...又是如何影响历史提交?当我 master 分支执行了强制 reset 又 force push 到了远端 ,又把 .git 文件夹删掉,同事为什么会哭??...现在 master 分支包含 dev 分支所有提交了。 合并冲突(Merge Conflicts) 尽管 Git 对于合并默认行为非常棒,但是总有需要我们自己解决时候。...比如,当两个分支都有新提交,又同时修改了同一个文件同一行内容,或者一个分支删除了一个文件,而另一个分支却修改了那个文件等等。 这些情况下,Git 就会请我们来帮忙啦。...当你 feature 分支上工作,而 master 分支又更新,这时就可以使用 rebase,无缝地将 master 分支更新到你 feature 分支

93740

提交代码报错 error: failed to push some refs to

陌涛想把本地分支推送到远程仓库时,突然出现错误提醒error: failed to push some refs to...。瞅瞅,也没错呀,那为啥推不上去???...分支名不完整 emmm,这个错误大概是最难发现,不是难度系数高,而是大家都把以本地master与远程master为例去写答案,于是大家会下意识忽略掉本地分支与远程分支名不一样情况。...(也可能这个大家只包含....) git推送完整写法如下: git push @remoteName @localBranch:@remoteBranch // eg.remoteName:origin...例如本地和远程分支名都是mastergit push origin master 如果确认分支名没有错,那就继续往下看 没有提交代码 可以用 git status查看是否忘了把代码提交上去了。...git add . git commit -m "This is a new commit" git push origin master 本地与远程产生冲突 或是有其他协作者提交了代码,或是你之前远程直接做了处理

11.6K10

Git版本回退方法论(可能解决你101%遇到Git版本问题)

1 本地版本回退 你本地做了错误 commit 先找到要回退版本commit id: git reflog ?...commit有误,你用reset回滚远程分支master到A1,那么理想状态是你同事一拉代码git pull,他们master分支也回滚了 然而现实却是,你同事会看到下面的提示: $ git status...(use "git push" to publish your local commits) nothing to commit, working directory clean 也就是,你同事分支并没有主动回退...,而是远程分支超前两次提交,因为远程分支回退了。...命令好处就是不会丢掉别人提交,即使你撤销后覆盖了别人提交,他更新代码后,可以本地用 reset 向前回滚,找到自己代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖提交了

94741

Git版本回退方法论(可能解决你101%遇到Git版本问题)

1 本地回退 你本地做了错误 commit,先找到要回退版本commit id: git reflog ?...commit有误,你用reset回滚远程分支master到A1,那么理想状态是你同事一拉代码git pull,他们master分支也回滚了 然而现实却是,你同事会看到下面的提示: $ git status...(use "git push" to publish your local commits) nothing to commit, working directory clean 也就是,你同事分支并没有主动回退...,而是远程分支超前两次提交,因为远程分支回退了。...命令好处就是不会丢掉别人提交,即使你撤销后覆盖了别人提交,他更新代码后,可以本地用 reset 向前回滚,找到自己代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖提交了

2.2K20

git创建分支,合并分支,常用命令

Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照指针,包含本次提交作者等相关附属信息,包含零个或多个指向该提交对 象父对象指针:首次提交是没有直接祖先,普通提交一个祖先...之后 Git 创建提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)指针,如此它就可以将来需要时候,重现此次快照内容。...所以此特性让 Git 合并操作其他系统都要简单不少。 ? 图 3-17. Git 自动创建了一个包含了合并结果提交对象。...(Git默认选择 opendiff,因为 Mac 运行了该命令),你可以在上方”merge tool candidates”里找到可用合并工具列表,输入你想用工具名。...如果你从这里克隆,Git 会自动为你将此远程仓库命名为origin,并下载其中所有的数据,建立一个指向它 master 分支指针,本地命名为 origin/master,但你无法本地更改其数据。

14.9K51

Git最全系列教程(三)

Git提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照指针,包含本次提交作者等相关附属信息,包含零个或多个指向该提交对象父对象指针:首次提交是没有直接祖先,普通提交一个祖先...之后 Git 创建提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)指针,如此它就可以将来需要时候,重现此次快照内容。...所以此特性让 Git 合并操作其他系统都要简单不少。 ? 图 3-17. Git 自动创建了一个包含了合并结果提交对象。...(Git默认选择 opendiff,因为 Mac 运行了该命令),你可以在上方"merge tool candidates"里找到可用合并工具列表,输入你想用工具名。...如果你从这里克隆,Git 会自动为你将此远程仓库命名为 origin,并下载其中所有的数据,建立一个指向它 master 分支指针,本地命名为 origin/master,但你无法本地更改其数据

95730

前端小微团队Gitlab实践

需求开发 feature/1,一个特性分支,对应issue 1 创建需求 正常需求当然来源于产品经理等需求提出方,由于是通过示例说明,这里自己TAPD模拟着写一个需求。 ?...修复测试环境bug bug/3,一个bug分支,对应issue 3 这里迭代周期内由测试工程师发现测试环境中系统bug,这些bug会被记录在敏捷开发协作平台TAPD。...最重要是,git revert回滚细节控制更加优秀,可解决部分回滚需求。...修复线上bug hotfix/5,一个线上热修复分支,对应issue 5 比如线上出现系统无法登录bug,测试工程师也TAPD提交了缺陷记录。那么修复线上bug步骤是什么呢?...有cherry pick,我们就可以合并单次提交记录,解决git merge时合并太多不想要内容烦恼,解决bug时特别有用。

1.5K1815

彻底搞懂 Git-Rebase

二、导致问题 1.不利于代码 review 设想一下,你要做 code review ,结果一个很小功能,提交了 60 多次,会不会有一些崩溃?...四、Rebase 场景二:分支合并 1.我们先从 master 分支切出一个 dev 分支,进行开发: git:(master) git checkout -b feature1 2.这时候,你同事完成了一次...1.当我们一个过时分支上面开发时候,执行 rebase 以此同步 master 分支最新变动; 2.假如我们要启动一个放置很久并行工作,现在有时间来继续这件事情,很显然这个分支已经落后。...根据上文来看,git-rebase 很完美,解决我们两个问题: 1.合并 commit 记录,保持分支整洁; 2.相比 merge 来说会减少分支合并记录; 如果你提交了代码到远程,提交前是这样...: 提交后远程分支变成了这样: 而此时你同事 feature1 开发,他分支依然还是: 那么当他 pull 远程 master 时候,就会有丢失提交纪录。

5K20

合并冲突 - 每天三分钟玩转Git(三)

为了产生一个冲突,一个地方向远程仓库提交了代码,更改share_file.txt文件,加了一行内容tom add for merge 本地修改同一个文件加了一行pzqu add for merge...02 — 合并不同分支冲突 想像一下,要是我们只用主分支来写代码,同事开发不同功能时候交叉提交到远程主线上,要是产品突然不要这个功能,回退起来就非常困难,不仅仅要去一个一个找哪个提交是属于这个功能...用分支就不会有这么多事情,自己分支干活,等全部开发完成,再一次性合并到主分支,这样我们既可从分支上知道一个开发进度,又不影响大家干活,是不是很 方便呢?...解决完冲突异常舒适 上图我们可以看到: master分支远程origin/master分支多一次提交,dev/pzqu分支由于是基于origin/master分支,合并master分支提交和当前...通常我们开一个开发分支是为了自己分支写代码,方便提交也不会把主线弄乱。 现在我们用同样方法将dev/pzqu合并到master分支,然后把两个分支提交到远程。 ?

57810

git问题场景和log颜色查看

这些是最基本场景,但是你有没有遇到过以下棘手场景: 1.1、别的同事提交了master(或者dev分支),但是下一个临时发布版本需要暂时剔除这个代码,并且需要合并你自己负责那部分代码提交。...当然你可以先找到别的同事提交之前那个版本,然后branch一个分支,merge代码。...但是问题是如果master已经提交了很多个commit,而别的同事提交那个暂时不想要(比如提交一个大功能模块,上线可可能需要比较谨慎,所以这次不发表),其他还是要一起发布。...第三轮是git分支(或tag)加上本commit提交日志。 2.1. git版本线 每一条版本线代表着一个分支。...还有有些颜色会中断,然后另外一个地方继续,这里其实已经是不同分支,也就是git log颜色同样,如果遇到分支,或者断续 可能代表是另一个分支 这里有分叉,有断线再接上,同一个颜色(绿色)代表5

2.9K390

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券