re-base

净化Git之rebase变基的使用

旧街凉风 提交于 2020-05-09 16:19:58
git rebase能够将分叉的分支重新合并,之前写过一篇文章介绍它的原理,下面主要介绍它的两个使用场景: 场景一:本地与远端同一分支提交历史不一致 方式一 多个人在同一个分支上协作时,出现冲突是很正常的,比如现在有一个项目由我和A一同开发。 我在修复了一个bug以后准备提交 HowiedeiMac:ganlin howie$ git add models/paper.go HowiedeiMac:ganlin howie$ git commit -m 'fix a bug' [master 8b76654] fix a bug 1 file changed, 3 insertions(+), 3 deletions(-) 现在准备推送到远端 HowiedeiMac:ganlin howie$ git push origin master To https://gitee.com/greenhn/ganlin.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://gitee.com/greenhn/ganlin.git' hint: Updates were rejected because the remote contains work that

如何从Git存储库中的提交历史记录中删除/删除大文件?

二次信任 提交于 2020-05-07 08:57:38
问题: Occasionally I dropped a DVD-rip into a website project, then carelessly git commit -a -m ... , and, zap, the repo was bloated by 2.2 gigs. 有时,我将DVD-rip放入一个网站项目中,然后不小心 git commit -a -m ... ,然后,zap的回购膨胀了2.2个演出。 Next time I made some edits, deleted the video file, and committed everything, but the compressed file is still there in the repository, in history. 下次我进行一些编辑,删除视频文件并提交所有内容,但是压缩文件仍在历史记录中。 I know I can start branches from those commits and rebase one branch onto another. 我知道我可以从这些提交开始分支,并将一个分支重新建立到另一个分支。 But what should I do to merge together the 2 commits so that the big file didn't

git一些实践命令,关于reabse和merge的区别在最后做了一个比较

时光总嘲笑我的痴心妄想 提交于 2020-05-02 00:41:56
git命令 一. 克隆,提交,拉取代码 1. 克隆,提交代码 git clone:远端仓库地址 git remote add upstream: 上游远端仓库地址(fork代码的原地址)。添加上游远端仓库 git add -A git commit -m '描述' git push 2. 从上游远端仓库拉取冲突代码,解决冲突 git pull upstream master -r:把冲突部分拉下来,使用rebase合并代码,不会产生合并信息,不使用rebase确实回产生的。pull细节:把工作区的修改暂存起来,把远端代码和上一次提交合并,然后把暂存的修改再合并到分支上 git add -A git rebase --continue:重新提交代码文件,不会产生额外的commit。如果合并的分支中存在多个commit,需要重复处理多次冲突。 只有处理冲突时候才能用这个命令。 git push -f:强制提交代码 3. 修补最近一次的提交 git commit —amend(-a):修补最近一次push 4. 拉取代码 git pull 等价于 git fetch & git merge:这时从远端拉取代码,回产生一个合并日志,产生分叉 git pull --rebase (-r):使用 git rebase 合并代码 二. 删除远端误提交代码文件 git rm —cached

动画图解Git命令

回眸只為那壹抹淺笑 提交于 2020-05-01 08:51:32
​Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具 尽管Git是一个非常强大的工具,但我认为大多数人都会同意我的说法,即它也可以是。。。彻头彻尾的噩梦😐 一直觉得在脑海中想象使用Git时发生的事情非常有用:当我执行某个命令时,分支是如何交互的,它将如何影响历史?国外来自英属哥伦比亚的程序媛 Lydia Hallie《CS Visualized: Useful Git Commands》。在这篇文章里面,她通过生动形象的动画,以更加直观的方式,向开发者展示 Git 命令中的 merge、rebase、reset、revert、cherry-pick 等常用骚操作的具体原理 1.Git | Merging (git merge) - Fast-forward (--ff) 当当前分支与正在合并的分支相比没有额外提交时,可能会发生快速向前合并,Git首先尝试执行最简单的选择 Fast-forward 模式合并不会创建新的提交,而是合并当前分支中合并的分支上的提交 现在,在dev分支上所做的所有更改都在master分支上可用。那么,No-fast-foward 是怎么回事? - No-fast-foward (--no-ff) 如果您当前的分支与要合并的分支相比没有任何额外的提交,那就太好了,但不幸的是

git远程管理

核能气质少年 提交于 2020-04-30 11:28:36
删除远程的的某个分支,比如这里删除远程的guolicheng分支: git checkout master git push origin --delete guolicheng # 这里先切换到master分支上去删除 #################################################### Git 是目前最流行的 版本管理系统 ,学会Git几乎成了开发者的必备技能。 Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。 一、git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到 git clone 命令。 $ git clone <版本库的网址 > 比如,克隆jQuery的版本库。 $ git clone https : / /github .com /jquery /jquery .git 该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名

git远程管理

 ̄綄美尐妖づ 提交于 2020-04-30 11:28:22
删除远程的的某个分支,比如这里删除远程的guolicheng分支: git checkout master git push origin --delete guolicheng # 这里先切换到master分支上去删除 #################################################### Git 是目前最流行的 版本管理系统 ,学会Git几乎成了开发者的必备技能。 Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。 一、git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到 git clone 命令。 $ git clone <版本库的网址 > 比如,克隆jQuery的版本库。 $ git clone https : / /github .com /jquery /jquery .git 该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名

git远程管理

安稳与你 提交于 2020-04-30 11:27:52
删除远程的的某个分支,比如这里删除远程的guolicheng分支: git checkout master git push origin --delete guolicheng # 这里先切换到master分支上去删除 #################################################### Git 是目前最流行的 版本管理系统 ,学会Git几乎成了开发者的必备技能。 Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。 一、git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到 git clone 命令。 $ git clone <版本库的网址 > 比如,克隆jQuery的版本库。 $ git clone https : / /github .com /jquery /jquery .git 该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名

git远程管理

試著忘記壹切 提交于 2020-04-30 11:27:17
删除远程的的某个分支,比如这里删除远程的guolicheng分支: git checkout master git push origin --delete guolicheng # 这里先切换到master分支上去删除 #################################################### Git 是目前最流行的 版本管理系统 ,学会Git几乎成了开发者的必备技能。 Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。 git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。 一、git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到 git clone 命令。 $ git clone <版本库的网址 > 比如,克隆jQuery的版本库。 $ git clone https : / /github .com /jquery /jquery .git 该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名

git-bash的alias别名设置

安稳与你 提交于 2020-04-29 12:46:33
正常需要设置别名时,直接使用 alias gs="git status" 输入上边的命令之后,就可以使用gs(命令)代替git status(命令),这是一种设置别名简化输入,提升效率的办法 可以根据自己日常的习惯,和自己的理解,按照自己是喜好特点定义自己的一组常用的别名缩写。 然后日常操作就会变得简单很多。 但是,如果只是如此操作,当我们关闭终端窗口的时候,重新启动之后会发现,这个别名消失了。原因是没有永久保存。 如果想永久保存,我们可以做如下操作: ls ~/.bash_profile 查看用户目录的.bash_profile文件是否存在,如果存在直接修改,不存在这创建该文件,并编辑其内容 vi ~/.bash_profile 在该文件中写入最开始的alias 别名="命令"的信息,每行写一个。可以把所有想要设置别名的命令都列到这里。 然后保存该文件退出。此时,所有相关的别名设置基本完成。但是目前并么有马上生效,要不重启终端,要不通过命令 source ~/.bash_profile 命令执行以后,所有的别名就可以正常使用了,而且如果关掉终端再打开依然可以正常使用。 因为缩写确实是非常的方便,所以很多人都有这样的习惯。这里推荐一些人使用的zshell的一套别名 alias gpm='git push origin master' alias ...=../.. alias ..

git pull --rebase的理解

不想你离开。 提交于 2020-04-27 05:27:50
在使用git的过程中经常需要使用到git pull命令,在更新远端代码的同时如果与本地代码产生冲突了, 那么冲突的文件中就出现了需要手动合并的部分,而git pull --rebase不同的地方则是当有这些冲突存在时, git帮我们自动创建了一个新的分支,并且git告诉你接下来你要在这个新的分支上处理这个冲突, 此时执行git status命令后可以看到首要的提示是这样的: rebase in progress; onto 24f42c6 You are currently rebasing branch 'master' on '24f42c6'. (fix conflicts and then run "git rebase --continue") 并且git还告诉我们 fix conflicts and then run "git rebase --continue",意思是解决冲突然后执行git rebase --continue命令, 其实git rebase --continue的正确操作应该是确认处理好冲突后则将调整好的文件添加到暂存区,并执行git rebase --continue命令告诉git,我已经解决好冲突了, 并且已经将处理后的文件添加到了暂存区,现在可以将这些文件commit了, 简单来讲就是正常的解决冲突过程是 1,git add . 2,git