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 · 3403 阅读 · 0 评论 -
每一行代码都有记录—如何用git一步步探索项目的历史
每一行代码都有一块被隐藏了的文档信息。 下面的代码片段不管是谁写的,其第4行因为某些原因要访问一个DOM结点的clientLeft属性,但却对结果不作任何处理。这十分的莫名其妙,你能告诉我他们为什么要这样做吗?以后改变或移除这个调用安全吗? // ... if (duration > 0) this.bind(endEvent, wrappedCallbac...转载 2019-11-24 18:17:20 · 906 阅读 · 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 · 1025 阅读 · 0 评论 -
git commit --amend 改写提交
1. commit --amend 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们将修改最近一次的提交。 首先进入stepup-tutorial/tutorial1目录。本地端的历史记录状态如下图显示。 用log命令确认历史记录。 $ git log commit 326fc9f70d022afdd31b0072dbb转载 2017-03-08 22:49:24 · 60555 阅读 · 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 · 11492 阅读 · 0 评论 -
基于当前分支的某一个commit号创建分支
基于当前分支的某一个commit号创建分支 git checkout -b dev2 <branch id>原创 2018-10-31 18:56:03 · 3524 阅读 · 0 评论 -
Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作。。。 一、原始版本控制 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本。有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了,即使知道新旧,可能也不知道每个版本是什么内容,相对上一版作了什么修改了,当转载 2017-10-15 18:42:34 · 962 阅读 · 0 评论 -
Git++ - 有趣的命令
本文主要介绍一些我在日常开发中觉得比较有趣的Git基础命令 差异对比 日常开发中,差异对比是执行比较频繁的命令 HEAD一般指向当前分支的最后一次Commit,下面三种是我最常用的差异对比 git diff 尚未暂存的Working Tree与HEAD的差异 git diff –cached Index与HEAD的差异 注 : 别名git d转载 2017-04-16 17:01:04 · 1732 阅读 · 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 · 1149 阅读 · 0 评论 -
3.6 Git 分支 - 分支的衍合
分支的衍合 把一个分支中的修改整合到另一个分支的办法有两种:merge 和 rebase(译注:rebase 的翻译暂定为“衍合”,大家知道就可以了。)。在本章我们会学习什么是衍合,如何使用衍合,为什么衍合操作如此富有魅力,以及我们应该在什么情况下使用衍合。 基本的衍合操作 请回顾之前有关合并的一节(见图 3-27),你会看到开发进程分叉到两个不同分支,又各自提交了更新。转载 2017-03-08 23:02:39 · 1029 阅读 · 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 · 997 阅读 · 0 评论 -
Git笔记(一)——[commit, checkout]
其实一直觉得自己是会用Git的,毕竟咱也是用Github的人啊!可是三月份找工作时候的一次面试颠覆了我的看法: Q: 用过Git吗?平常怎么用的? A: 用过的,一般就是add,commit,push嘛 Q: branch用的多吗?git rebase这命令使用过吗? A: 一般都是自己的项目用的,就一个人,没涉及到这么复杂的使用 Q: 那换个话题吧。。。 这么一搞才发现,转载 2017-03-08 23:00:17 · 1809 阅读 · 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 · 1149 阅读 · 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 · 2663 阅读 · 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 · 5128 阅读 · 0 评论 -
git merge --squash改写提交
教程3 改写提交! 7. merge --squash 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们移动到stepup-tutorial/tutorial7目录。本地端的历史记录的状态如下图显示。把issue1分支的所有提交合并成一个提交,并导入到master分支。 切换到master分支后,指定 --squash选项转载 2017-03-08 22:53:24 · 3058 阅读 · 0 评论 -
git rebase -i 修改提交
教程3 改写提交! 6. 用rebase -i 修改提交 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们进入stepup-tutorial/tutorial6目录。本地端的历史记录的状态如下图显示。我们在这里修改「添加commit的讲解」的内容。 用rebase -i ,首先选择要修改的提交。 $ git rebase转载 2017-03-08 22:52:39 · 2754 阅读 · 0 评论 -
git rebase -i 汇合提交
教程3 改写提交! 5. 用rebase -i 汇合提交 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们进入stepup-tutorial/tutorial5目录。本地端的历史记录的状态如下图显示。在这里汇合「添加commit的讲解」和「添加pull的讲解」的修改,然后合并到一个提交。 若要汇合过去的提交,请用rebas转载 2017-03-08 22:51:56 · 4167 阅读 · 0 评论 -
git reset改写提交
教程3 改写提交! 3. reset 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们将用reset来删除master分支最前面的两个提交。 首先进入stepup-tutorial/tutorial3目录。本地端的历史记录的状态如下图显示。 用log命令确认历史记录。 $ git log commit 0d4a80转载 2017-03-08 22:51:09 · 1088 阅读 · 0 评论 -
git revert改写提交
教程3 改写提交! 2. revert 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们将用revert命令来取消「添加pull的讲解」提交。 首先进入stepup-tutorial/tutorial2目录。本地端的历史记录的状态如下图显示。 用log命令确认历史记录 $ git log commit 0d4a80转载 2017-03-08 22:50:10 · 2088 阅读 · 0 评论 -
git cherry-pick改写提交
教程3 改写提交! 4. cherry-pick 为了节省时间,这个教程使用现有的历史记录作为本地数据库。 从这里下载 我们进入stepup-tutorial/tutorial4目录。本地端历史记录的状态如下图显示。仅把在其他分支执行的「添加commit的讲解」的修改导入到master分支。 把修改移动到master分支后,用cherry-pick转载 2017-03-08 22:48:29 · 2108 阅读 · 0 评论 -
git revert 用法
git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交 * git revert HEAD 撤销前一次 commit * git revert HEAD^ 撤销前前一次 commit * git revert commit (比如:fa0...转载 2019-06-20 20:49:24 · 2119 阅读 · 0 评论 -
git 常用别名
git 常用别名 git config --global alias.aa add . git config --global alias.cm commit -m git config --global alias.co checkout git config --global alias.cb checkout -b git config --global alias.b branc...原创 2019-07-01 23:25:05 · 1886 阅读 · 0 评论 -
16个不错的 git 别名
git 是一个非常棒的源代码管理工具,它的使用已经完全整合到开发的工作流当中;同时,git 还是一个 review/OTAP/deployment 工具。 当在 CLI 中使用 git 时,有时必须输入很多比较长的命令来完成一些事情。尽管大部分 git 命令是很简单的,但是也有一些非常复杂并难以输入的命令。而开发人员是比较懒的,并会尽可能的少输入命令。 因为上述情况很符合我,所以对于我经常使用...转载 2019-07-01 23:21:15 · 1490 阅读 · 0 评论 -
Gitflow工作流程
在工作场合实施Git的时候,有很多种工作流程可供选择,此时反而会让你手足无措。本文罗列了企业团队最常用的一些git工作流程,包括Centralized Workflow、Feature Branch Workflow、Gitflow Workflow、Forking Workflow。愿以此文抛砖引玉。 在你开始阅读之前,请记住:这些流程应被视作为指导方针,而非“铁律”。我们只是想告诉你可能的做...转载 2019-06-17 21:58:49 · 1010 阅读 · 0 评论 -
前端综合能力系列之git与gitflow
前言 git 最强大的就是其分支功能,但是如何分支才能更有效的提高开发效率,减少因为代码合并带来的问题,需要一个分支模型来规范,其实在 git flow 出现之前,已经有分支模型理论流程,当时是根据此理论,手动的按照规范操作分支,git flow 出现之后,将一部分操作流程简化为命令,并没有增加新的功能,只是简化了操作。 安装 # 目前流行的是 avh 版本的 git-flow # 稳定版...转载 2019-06-17 21:57:52 · 709 阅读 · 0 评论 -
如何正确使用Git Flow 流程
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用。 Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点。 由于是分布式,所有本地库包含了远程库的所有内容。 优秀的分支模型,打分支以及合并分支,机器方便。 快速,在这个时间就是金钱的时代,Git由于代码都在本地,打分支和合并分支机...转载 2019-06-17 21:56:11 · 869 阅读 · 0 评论 -
git-flow 流程 备忘清单
关于 git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。查看详情 ★ ★ ★ 这个备忘清单展示了 git-flow 的基本操作和效果。 ★ ★ ★ 基础建议 Git flow 提供了极出色的命令帮忙以及输出提示。请仔细阅读并观察发生了什么事情... macOS 程序Sourcetree是一个极出色的 git 界面客户端...转载 2019-06-17 21:53:38 · 751 阅读 · 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 · 1245 阅读 · 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 · 662 阅读 · 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 · 3083 阅读 · 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 · 1037 阅读 · 0 评论 -
git reset revert 回退回滚取消提交返回上一版本
总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的. 大致分为下面2种情况: 1.没有push 这种情况发生在你的本地代码仓库,可能你add ,commit ...转载 2019-06-20 20:50:44 · 1085 阅读 · 0 评论 -
Git 基础 - 打标签 tag
打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。 列显已有的标签 列出现有标签的命令非常简单,直接运行 git tag 即可: $ git tag v0.1 v1.3 显示的标签按字母顺序排列,所以标签的...转载 2018-11-07 19:50:26 · 831 阅读 · 0 评论 -
用已存在的Git分支关联远程分支
Given a branchfooand a remoteupstream: As of Git 1.8.0: git branch -u upstream/foo Or, if local branchfoois not the current branch: git branch -u upstream/foo foo Or, if you like to type...转载 2019-03-18 22:54:15 · 904 阅读 · 0 评论 -
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 · 16912 阅读 · 0 评论 -
GIT使用rebase和merge的正确姿势
背景 使用GIT这么久了从来没有深层次的研究过,一般情况下,只要会用pull,commit,push等几个基本提交命令就可以了,公司的项目分支管理这部分操作一直都是我负责,对于分支的合并我一直都使用merge操作,也知道还有一个rebase,但是一直不会用,百度了很多,说的基本都差不多,按照步骤在公司项目里操作,简直就是噩梦,只要rebase就出现噩梦般的冲突,所以一直不敢用,今天自己捣腾了一番...转载 2018-12-28 12:49:06 · 9905 阅读 · 1 评论 -
Git 教程 菜单
高质量的 Git 中文教程,源于国外社区的优秀文章和个人实践转载 2018-12-28 12:47:29 · 836 阅读 · 0 评论 -
git Rebase 代替合并
虽然合并(merge)操作可以用来简单和方便地整合改动,但是它却不是唯一的方法。“Rebase” 就是另一种替代手段。 注释 虽然 rebase 相对于我们已知的整合操作来说有着比较显著的优点,但是这也是在很大程度上取决于个人的喜好。一些团队喜欢使用 rebase,而另一些可能倾向于使用合并。 Rebase 相对于合并来说是比较复杂的。我建议你可以跳过这一章,除非你和你的团队确定会用到 re...转载 2018-12-28 12:46:17 · 1040 阅读 · 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 · 1154 阅读 · 0 评论
分享