Git
GarfieldEr007
这个作者很懒,什么都没留下…
展开
-
Git命令按人统计提交次数和代码量
=== 统计每个人的代码量git log --format='%aN'|sort-u |whilereadname;doecho-en"$name\t"; git log --author="$name"--pretty=tformat: --numstat |awk'{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %...原创 2020-08-31 23:31:28 · 3049 阅读 · 0 评论 -
每一行代码都有记录—如何用git一步步探索项目的历史
每一行代码都有一块被隐藏了的文档信息。下面的代码片段不管是谁写的,其第4行因为某些原因要访问一个DOM结点的clientLeft属性,但却对结果不作任何处理。这十分的莫名其妙,你能告诉我他们为什么要这样做吗?以后改变或移除这个调用安全吗? // ... if (duration > 0) this.bind(endEvent, wrappedCallbac...转载 2019-11-24 18:17:20 · 737 阅读 · 0 评论 -
git commit --amend 改写提交
1. commit --amend为了节省时间,这个教程使用现有的历史记录作为本地数据库。从这里下载我们将修改最近一次的提交。首先进入stepup-tutorial/tutorial1目录。本地端的历史记录状态如下图显示。用log命令确认历史记录。$ git logcommit 326fc9f70d022afdd31b0072dbb转载 2017-03-08 22:49:24 · 60276 阅读 · 0 评论 -
5.1 代码合并:Merge、Rebase的选择
BY 童仲毅(geeeeeeeeek@github)这是一篇在原文(BY atlassian)基础上演绎的译文。除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享。git rebase 这个命令经常被人认为是一种Git巫术,初学者应该避而远之。但如果使用得当的话,它能给你的团队开发省去太多烦恼。在这篇文章中,我们会比较git rebase和类似的转载 2017-03-09 23:00:27 · 980 阅读 · 0 评论 -
Git++ - 有趣的命令
本文主要介绍一些我在日常开发中觉得比较有趣的Git基础命令差异对比日常开发中,差异对比是执行比较频繁的命令HEAD一般指向当前分支的最后一次Commit,下面三种是我最常用的差异对比git diff尚未暂存的Working Tree与HEAD的差异git diff –cachedIndex与HEAD的差异注 : 别名git d转载 2017-04-16 17:01:04 · 1592 阅读 · 0 评论 -
Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作。。。一、原始版本控制 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本。有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了,即使知道新旧,可能也不知道每个版本是什么内容,相对上一版作了什么修改了,当转载 2017-10-15 18:42:34 · 878 阅读 · 0 评论 -
基于当前分支的某一个commit号创建分支
基于当前分支的某一个commit号创建分支git checkout -b dev2 <branch id>原创 2018-10-31 18:56:03 · 3400 阅读 · 0 评论 -
git add -u与-A .三者的区别
git add -u:将文件的修改、文件的删除,添加到暂存区。git add .:将文件的修改,文件的新建,添加到暂存区。git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。-u就是update的意思,只会标记本地有改动(包括删除和修改)的已经追踪的文件 -u, --update Update the index just wher...转载 2018-11-07 18:46:41 · 11388 阅读 · 0 评论 -
3.6 Git 分支 - 分支的衍合
分支的衍合把一个分支中的修改整合到另一个分支的办法有两种:merge 和 rebase(译注:rebase 的翻译暂定为“衍合”,大家知道就可以了。)。在本章我们会学习什么是衍合,如何使用衍合,为什么衍合操作如此富有魅力,以及我们应该在什么情况下使用衍合。基本的衍合操作请回顾之前有关合并的一节(见图 3-27),你会看到开发进程分叉到两个不同分支,又各自提交了更新。转载 2017-03-08 23:02:39 · 935 阅读 · 0 评论 -
图解Git
图解Git其他语言: Deutsch English Español Français Italiano 日本語 한국어 Polski Português Русский Slovenčina Tiếng Việt 正體中文此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。 如果你想知道这个站点怎样产生,请前往GitHub repo转载 2017-03-08 23:01:30 · 916 阅读 · 0 评论 -
git revert改写提交
教程3 改写提交!2. revert为了节省时间,这个教程使用现有的历史记录作为本地数据库。从这里下载我们将用revert命令来取消「添加pull的讲解」提交。首先进入stepup-tutorial/tutorial2目录。本地端的历史记录的状态如下图显示。用log命令确认历史记录$ git logcommit 0d4a80转载 2017-03-08 22:50:10 · 1960 阅读 · 0 评论 -
git reset改写提交
教程3 改写提交!3. reset为了节省时间,这个教程使用现有的历史记录作为本地数据库。从这里下载我们将用reset来删除master分支最前面的两个提交。首先进入stepup-tutorial/tutorial3目录。本地端的历史记录的状态如下图显示。用log命令确认历史记录。$ git logcommit 0d4a80转载 2017-03-08 22:51:09 · 984 阅读 · 0 评论 -
git rebase -i 汇合提交
教程3 改写提交!5. 用rebase -i 汇合提交为了节省时间,这个教程使用现有的历史记录作为本地数据库。从这里下载我们进入stepup-tutorial/tutorial5目录。本地端的历史记录的状态如下图显示。在这里汇合「添加commit的讲解」和「添加pull的讲解」的修改,然后合并到一个提交。若要汇合过去的提交,请用rebas转载 2017-03-08 22:51:56 · 4046 阅读 · 0 评论 -
git rebase -i 修改提交
教程3 改写提交!6. 用rebase -i 修改提交为了节省时间,这个教程使用现有的历史记录作为本地数据库。从这里下载我们进入stepup-tutorial/tutorial6目录。本地端的历史记录的状态如下图显示。我们在这里修改「添加commit的讲解」的内容。用rebase -i ,首先选择要修改的提交。$ git rebase转载 2017-03-08 22:52:39 · 2569 阅读 · 0 评论 -
git merge --squash改写提交
教程3 改写提交!7. merge --squash为了节省时间,这个教程使用现有的历史记录作为本地数据库。从这里下载我们移动到stepup-tutorial/tutorial7目录。本地端的历史记录的状态如下图显示。把issue1分支的所有提交合并成一个提交,并导入到master分支。切换到master分支后,指定 --squash选项转载 2017-03-08 22:53:24 · 2768 阅读 · 0 评论 -
git cherry-pick 使用指南
git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了,其实也就是对已经存在的commit 进行再次提交.简单用法:git che转载 2017-03-08 22:57:56 · 4909 阅读 · 0 评论 -
Git笔记(三)——[cherry-pick, merge, rebase]
书接上回,直入主题!这篇继续实践剩下的几个命令。现在的SourceTree状态如下:cherry-pick - 妈妈,我也要cherry-pick其实在工作中还挺常用的,一种常见的场景就是,比如我在A分支做了几次commit以后,发现其实我并不应该在A分支上工作,应该在B分支上工作,这时就需要将这些commit从A分支复制到B分支去了,这时候就需要cherry-转载 2017-03-08 22:58:38 · 2485 阅读 · 0 评论 -
Git笔记(二)——[diff, reset]
书接上回,直入主题!如果你是接着上篇来的,那么先运行git reset HEAD test.txt和git checkout test.txt来放弃当前的更改,使最新的commit回到“commit temp”,这个时候运行git status,会看到“nothing to commit, working directory clean”。这里,“nothing to commit”说转载 2017-03-08 22:59:18 · 988 阅读 · 0 评论 -
Git笔记(一)——[commit, checkout]
其实一直觉得自己是会用Git的,毕竟咱也是用Github的人啊!可是三月份找工作时候的一次面试颠覆了我的看法:Q: 用过Git吗?平常怎么用的?A: 用过的,一般就是add,commit,push嘛Q: branch用的多吗?git rebase这命令使用过吗?A: 一般都是自己的项目用的,就一个人,没涉及到这么复杂的使用Q: 那换个话题吧。。。这么一搞才发现,转载 2017-03-08 23:00:17 · 1600 阅读 · 0 评论 -
git恢复删除文件之ls-files
如果一个文件不小心被删除了,可以有两种方法恢复:1、需要记住所需恢复文件的名字和版本号(commit id) git checkout commit_id -- file_name如果不加commit_id,那么git checkout -- file_name 表示恢复文件到本地版本库中最新的状态。2、不需要记住所需恢复的文件名字。采用git ls-files命令,来...转载 2018-11-07 18:47:48 · 856 阅读 · 0 评论 -
Git 基础 - 打标签 tag
打标签同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。列显已有的标签列出现有标签的命令非常简单,直接运行 git tag 即可:$ git tagv0.1v1.3显示的标签按字母顺序排列,所以标签的...转载 2018-11-07 19:50:26 · 705 阅读 · 0 评论 -
git tag 介绍
git tag 介绍git跟其它版本控制系统一样,可以打标签(tag), 作用是标记一个点为一个版本号,如0.1.3, v0.1.7, ver_0.1.3。在程序开发到一个阶段后,我们需要打个标签,发布一个版本,标记的作用显而易见。[TOC]打标签在本地仓库打标签打标签git tag -a v2.0 -m '小程序完成微信支付功能'-a v2.0是增加 名为"v2...转载 2018-11-07 19:51:07 · 791 阅读 · 0 评论 -
git reset --hard、git reset --sort及git revert区别
一、 在git操作中,有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令。1、二者区别:git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;git reset -–hard:彻底回退到某个版本,本地的源码也会变为上...转载 2019-06-20 22:39:06 · 2662 阅读 · 0 评论 -
git - 简明指南
助你入门 git 的简明指南,木有高深内容 ;)Tweet作者:罗杰·杜德勒感谢:@tfnico,@fhd和Namics其他语言english,deutsch,español,français,indonesian,italiano,nederlands,polski,português,русский,türkçe,မြန်မာ,日本語,한국어V...转载 2019-06-17 21:44:53 · 583 阅读 · 0 评论 -
git 教程
目录1. Git 简介2. 基本命令 2.1. git config: 环境设置命令 2.2. git init: 初始化本地仓库 2.3. git clone: 克隆远程仓库到本地 2.4. ssh-keygen: 生成SSH公钥 2.5. git status 查看当前状态 2.6. git add: 添加到暂存区 2.7. git ...转载 2019-06-17 21:46:19 · 1057 阅读 · 0 评论 -
git-flow 流程 备忘清单
关于git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。查看详情★ ★ ★这个备忘清单展示了 git-flow 的基本操作和效果。★ ★ ★基础建议Git flow 提供了极出色的命令帮忙以及输出提示。请仔细阅读并观察发生了什么事情... macOS 程序Sourcetree是一个极出色的 git 界面客户端...转载 2019-06-17 21:53:38 · 671 阅读 · 0 评论 -
如何正确使用Git Flow 流程
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用。Git的优点Git的优点很多,但是这里只列出我认为非常突出的几点。由于是分布式,所有本地库包含了远程库的所有内容。 优秀的分支模型,打分支以及合并分支,机器方便。 快速,在这个时间就是金钱的时代,Git由于代码都在本地,打分支和合并分支机...转载 2019-06-17 21:56:11 · 757 阅读 · 0 评论 -
前端综合能力系列之git与gitflow
前言git 最强大的就是其分支功能,但是如何分支才能更有效的提高开发效率,减少因为代码合并带来的问题,需要一个分支模型来规范,其实在 git flow 出现之前,已经有分支模型理论流程,当时是根据此理论,手动的按照规范操作分支,git flow 出现之后,将一部分操作流程简化为命令,并没有增加新的功能,只是简化了操作。安装# 目前流行的是 avh 版本的 git-flow# 稳定版...转载 2019-06-17 21:57:52 · 602 阅读 · 0 评论 -
Gitflow工作流程
在工作场合实施Git的时候,有很多种工作流程可供选择,此时反而会让你手足无措。本文罗列了企业团队最常用的一些git工作流程,包括Centralized Workflow、Feature Branch Workflow、Gitflow Workflow、Forking Workflow。愿以此文抛砖引玉。在你开始阅读之前,请记住:这些流程应被视作为指导方针,而非“铁律”。我们只是想告诉你可能的做...转载 2019-06-17 21:58:49 · 860 阅读 · 0 评论 -
16个不错的 git 别名
git 是一个非常棒的源代码管理工具,它的使用已经完全整合到开发的工作流当中;同时,git 还是一个 review/OTAP/deployment 工具。当在 CLI 中使用 git 时,有时必须输入很多比较长的命令来完成一些事情。尽管大部分 git 命令是很简单的,但是也有一些非常复杂并难以输入的命令。而开发人员是比较懒的,并会尽可能的少输入命令。因为上述情况很符合我,所以对于我经常使用...转载 2019-07-01 23:21:15 · 1354 阅读 · 0 评论 -
git 常用别名
git 常用别名git config --global alias.aa add .git config --global alias.cm commit -mgit config --global alias.co checkoutgit config --global alias.cb checkout -bgit config --global alias.b branc...原创 2019-07-01 23:25:05 · 1769 阅读 · 0 评论 -
代码回滚:Reset、Checkout、Revert 的选择
BY 童仲毅(geeeeeeeeek@github)这是一篇在原文(BY atlassian)基础上演绎的译文。除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享。git reset、git checkout和git revert是你的 Git 工具箱中最有用的一些命令。它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用...转载 2019-06-20 22:37:32 · 919 阅读 · 0 评论 -
git reset revert 回退回滚取消提交返回上一版本
总有一天你会遇到下面的问题.(1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚.(2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚.这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.大致分为下面2种情况:1.没有push这种情况发生在你的本地代码仓库,可能你add ,commit ...转载 2019-06-20 20:50:44 · 984 阅读 · 0 评论 -
Git 分支 - rebase 变基
变基在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。 在本节中我们将学习什么是“变基”,怎样使用“变基”,并将展示该操作的惊艳之处,以及指出在何种情况下你应避免使用它。变基的基本操作请回顾之前在 分支的合并 中的一个例子,你会看到开发任务分叉到两个不同分支,又各自提交了更新。Figure 35. 分叉的提交历史之前介绍过,整合分支最容易的...转载 2018-12-28 12:43:14 · 1108 阅读 · 0 评论 -
用git rebase合并
合并issue3分支的时候,使用rebase可以使提交的历史记录显得更简洁。现在暂时取消刚才的合并。$ git reset --hard HEAD~切换到issue3分支后,对master执行rebase。$ git checkout issue3Switched to branch 'issue3'$ git rebase masterFirst, rewindin...转载 2018-12-28 12:44:02 · 906 阅读 · 0 评论 -
git Rebase 变基 教程
在上一节我们看到了,多人在同一个分支上协作时,很容易出现冲突。即使没有冲突,后push的童鞋不得不先pull,在本地合并,然后才能push成功。每次合并再push后,分支变成了这样:$ git log --graph --pretty=oneline --abbrev-commit* d1be385 (HEAD -> master, origin/master) init hel...转载 2018-12-28 12:45:06 · 1066 阅读 · 0 评论 -
git Rebase 代替合并
虽然合并(merge)操作可以用来简单和方便地整合改动,但是它却不是唯一的方法。“Rebase” 就是另一种替代手段。注释虽然 rebase 相对于我们已知的整合操作来说有着比较显著的优点,但是这也是在很大程度上取决于个人的喜好。一些团队喜欢使用 rebase,而另一些可能倾向于使用合并。Rebase 相对于合并来说是比较复杂的。我建议你可以跳过这一章,除非你和你的团队确定会用到 re...转载 2018-12-28 12:46:17 · 921 阅读 · 0 评论 -
Git 教程 菜单
高质量的 Git 中文教程,源于国外社区的优秀文章和个人实践转载 2018-12-28 12:47:29 · 760 阅读 · 0 评论 -
GIT使用rebase和merge的正确姿势
背景使用GIT这么久了从来没有深层次的研究过,一般情况下,只要会用pull,commit,push等几个基本提交命令就可以了,公司的项目分支管理这部分操作一直都是我负责,对于分支的合并我一直都使用merge操作,也知道还有一个rebase,但是一直不会用,百度了很多,说的基本都差不多,按照步骤在公司项目里操作,简直就是噩梦,只要rebase就出现噩梦般的冲突,所以一直不敢用,今天自己捣腾了一番...转载 2018-12-28 12:49:06 · 9692 阅读 · 1 评论 -
Git远程:分支的upstream
一个分支的upstream,其实就是与远程分支做关联,告诉git,默认此分支为推送及拉取的远程分支的信息。upstream的设置基本设置 1 $ git branch --set-upstream-to=origin/dev 或 1 git branch -u origin/dev ...转载 2019-03-18 22:52:47 · 16207 阅读 · 0 评论