Git

分类下相关文章

android 手机上阅读编写代码的最佳 app 组合 Pocket Git + QuickEdit

日常生活中有大量的零碎时间,非常适合阅读代码片段,或者修改小的 bug。但是这种零碎时间往往是电脑不在身边的时候,例如 中午出去觅食的等待上餐时间 陪孩子去医院体检的排队时间 晚上干完家务疲惫的躺着沙发上的时间 往往五分钟就能看完一段逻辑,或者解决一个 bug,这比翻看毫无价值的新闻要愉快得多。 所以今天下午趁孙心然午睡的间隙,在 google play 上找了两个 android 上管理编辑代码的 app。 android 上的 git 仓库管理 Pocket Git 用起来非常简单,看图标基本就能轻松上手。基本的 git 功能都有,commit push 毫无障碍。 android ...

阅读全文...

github 上同步 forked project

之前 fork 过一个 github 上的项目,现在又想给这个项目 pull request,发现 fork 的代码已经很旧了,需要同步一下源项目的代码。 具体操作如下 git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git git fetch upstream git merge upstream/master ...

阅读全文...

git 查看指定文件的修改历史记录

使用 git 经常遇到这样的使用场景 查看一个文件被哪些兄弟修改过 查看一个文件近期是否发生改动 查看一个文件的历史修改记录列表 git log <file_name> 会列出 commit 的概要列表 以 weex hacknews 为例 $ git log src/views/ArticleView.vue commit 57448f63785b3e4fe43f88b56969215c7b2325be Author: Hanks <zhanghan.me@gmail.com> Date: Sat Dec 31 03:15:53 2016 +0800 ...

阅读全文...

花式使用 proxy 访问 Github - Github No.1, Proxy No.2, XXX No.7

转投 Sage 开发 wordpress 模板,初始化 Sage 代码目录折腾了我半天时间。 遇到的第一个问题是, composer 无法拉取 dev-master 的代码 $ composer create-project roots/sage your-theme-name dev-master 由于我使用的是 composer 国内镜像,开始怀疑是国内镜像有问题,然后清空了 ~/.composer 切换为官方镜像,依然没有响应。 但是拉取 release 版本,却一切正常 $ composer create-project roots/sage your-theme-name 我猜测 ...

阅读全文...

使用 git-ftp 将 git 两次提交发生变化的文件上传到服务器

首先公网使用 FTP 部署程序是非常不科学的一种方式 FTP 这种协议本身不安全 服务器上的代码不方便回滚 只适合 PHP 这种不需要重启的服务 但是没有办法,客户只给开放了 FTP 权限。我实在懒得说服对方。 使用 FileZilla 手动一个一个上传代码文件是一件让人崩溃的事情 如果一次特性发布涉及的文件过多,超过10个。一是容易遗漏文件,二是文件分布于多个目录,点击查找目录异常耗时 多个文件存在依赖关系时,如果手慢,发布了其中一个文件,但是其他文件在10秒钟之后才上传,那么用户就遭殃了,只能在这10秒钟内笑看错误页面 所以,自动化部署是必然的选择。原本打算自己写一个 shell ...

阅读全文...

Git 清理远程废弃分支

我有清理本地分支的习惯,基本每个分支开发结束,代码合并入 master 之后,都会立即将本地分支清除。 git branch -d branch_name 但是经常忘了清除远端分支。。。使用 Git 如果不定期清理 remote 分支的话,就会变成一座屎山。其实不经常清理远端分支的重要原因是,我记不住对应的语法 ^_^ 查了一下,git 1.7.0 之后的语法相对好记一些 (目前版本是 2.9.3) git push origin --delete branch_name 之前版本的做法是 git push origin :branch_name error: dst refspec b ...

阅读全文...

使 git 不再跟踪某一个文件

例如,配置文件需要从 git 仓库中剔除,但是又需要本地保留。 危险的做法,强烈不推荐 (未成年人请在家长陪同下尝试) git rm --cached config.php 即  git rm --cached <file> 在一个分支下开发,这种做法是没有问题的。即,如果在 master 分支里,使用如上操作之后,config.php 就从 git 管理中剔除了,但是仍然存在于硬盘上。并不会影响到本地开发环境的正常调试。 但是,但是,但是。。。如果同时满足以下条件的情况下,你就准备哭吧 多分支同时存在 config.php 文件。例如,master 分支,dev 分支都有 ...

阅读全文...

使用 git 列出两次发布间发生变化的文件列表

客户的 ecshop 只给我们提供了 FTP 的账号,也就是说只能通过 FTP 来更新代码。所以,每次上传都得明确具体有哪些文件发生了更改,需要更新。 这有点像腾讯内部提测需要给测试同学提供文件更新列表一样。还好用 git 可以轻松搞定。 每次更新前打 tag 打 tag 的目的是标记最后一次通过 FTP 更新的 commit. 例如 git tag -a v1.0 git tag -a v2.0 tips: git push 默认不会将 tags 推送到远端服务器,需要主动推送。 git push origin --tags 此外,最好是使用版本号最为 tag, 这样方便知道 tag 的 ...

阅读全文...

从 Git 仓库中删除指定 commit

最近接了一个客户的项目,是用 ecshop 写的,长期没有人维护,现在想做改版。 ecshop 所用的版本是 2.7.3, 只支持 PHP 5.2 (ecshop 3.0 支持了 PHP 5.6)。在我的开发机 Ubuntu 16.04 上,使用 phpbrew 死活装不上 PHP 5.2;实际上可以,主要是时间紧,下午还要和客户见面,我实在不想花时间去打 patch。于是就在同事用 phpstudy 搭建的测试环境里直接调试、提交修改了。 问题出现了。在我开发机上,实际上有一点改动,但是与测试环境的代码 merge 之后,导致测试环境无法运行。明显是我开发机改错了东西。现在想把这次 merg ...

阅读全文...

coding.net 无法识别 pub key 的问题

我在几台服务器上都遇到了这个问题,不知道什么原因,coding.net 就是识别不了本机生成的 pub key. 但是同样的 key 在 bitbucket 和 github 上都没有问题。 一种简单粗暴的方式是 git config --global credential.helper store 但是这是一种非常不安全的方式,因为账号和密码会明文保存到用户根目录下的文件 ~/.git-credentials 中。 Using this helper will store your passwords unencrypted on disk, protected only by file ...

阅读全文...

git

对远端分支进行回滚 git pull origin master git reset --hard <commit_id> git push origin master --force 参考 git 怎样删除远程仓库的某次错误提交? 版本号控制 当看到 Facebook Messenger 的版本号已经到了 70.0 的时候,我就明白了,版本号自己开心就好。 Bitbucket 拉取代码报错 Permission denied (publickey) 通过诊断发现 $ ssh -vT hg@bitbucket.org OpenSSH_7.2p2 Ubuntu-4, OpenSSL ...

阅读全文...

Git 分支管理

Git branch 中蕴含的哲学 Production-ready code 与 developing code 的分离 Do one thing, do it well. 每个分支的目的性明确,只做一件事。 多功能可以并行开发,且新功能与 hot fix 可以同步进行。 简化 branch new-branch & checkout new-branch 操作 $ git checkout -b <new-branch> 应用场景:加入一个临时功能,并在活动结束后去掉 git merge 默认是 fast-forward, 即合并分支后,从 log 中去掉了分支 ...

阅读全文...

git pull 并强制覆盖本地修改

操作 清除本地修改 git reset --hard 拉代码 git pull 参考 Git Pull While Ignoring Local Changes? ...

阅读全文...

将一个文件从 Git 仓库历史中完全删除

背景 无意间将一张非常大的图片(6M)提交到了 Git 仓库中,导致提交到 BitBucket 非常慢 ,所以需要将其从 Git 提交历史中完全删除。 在 BitBucket 被墙的情况下,甚至出现错误 error: RPC failed; result=55, HTTP code = 200 另外一种情况就是, 提交了敏感的信息,例如密码,key 文件等。 解决 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch app/img/*' --prune-empty --tag-name-fil ...

阅读全文...

通过代理访问 Git 仓库

背景 近期 BitBucket 被墙,无法推拉我的私有项目代码 解决方法 通过 GoAgent 代理访问 BitBucket Git 仓库. 假设 GoAgent 本地代理的端口号是 8087 (默认) 具体配置: 在 .git/conf 文件里添加 [http] proxy = http://127.0.0.1:8087 同时修改 [remote "origin"] url = ssh://git@bitbucket.org/<username>/<project>.git 为 [remote "origin"] ...

阅读全文...