前言 上一篇文章 Git Worktree 大法真香 带大家了解了 git worktree 是如何帮助我同时在多个分支工作,并且互不影响的.但是创建 worktree 的目录位置不是在当前项目下,总感觉创建好的这些 worktree 不属于当前项目,这对于磁盘管理强迫症的我来说是十分难受的,今天就带大家了解一种高级用法来解决这个痛点 准备知识 在使用高级用法之前,你需要知道一点 bare repo 知识,我们先从你熟悉的命令开始 git init git clone https://githu…
git clone,不管是single-branch,还是non-single-branch,如果同时存在几个clone出来的branches,随着时间的推移,不停的编译.更新.编译...每个branch占的空间越来越大.我目前工作的一个branch,本身大概3.5G左右,但是经常更新.编译.切换等等,后来能增大到15G以上.然后再做pull的时候,就经常pull不成功,有时候连续10几次才能pull下来.而且硬盘空间越来越小,内存也变小. 同事推荐了git worktree,通过clone一个…
先上总结: 在git worktree出现之前, git切换分支前后的文件都只存在在当前文件夹下, git worktree出现之后, 我们可以将分支切换到其他文件夹下 比如如果你的项目有很多个版本分支, 在git worktree出现之前, 为了维护不同版本你就需要频繁切换版本, 如果项目还不小的话, 切换成本还是不小的 以我前端为例, 由于node_modules文件夹被忽略无法被跟着分支来回切换, 导致切换不同版本后还需要重新安装npm, 很麻烦 这时使用git worktree将分支检出…
我在 feature 分支开发得多些,但总时不时被高优先级的 BUG 打断需要临时去 develop 分一个分支出来解 BUG.git 2.6 以上开始提供了 worktree 功能,可以解决这样的问题. 阅读本文将了解使用 git worktree 高效进行并行开发的方法. git worktree 从一个仓库中可以创建多个工作目录,方便多开编辑器并行开发. 快速上手 git worktree add -b <新分支名> <新路径> <从此分支创建> 例如,你正在某个…
参考文章: git查看某个文件的修改历史 5.3 Git log 高级用法 基本步骤 git log --pretty=oneline [文件名] git show [节点] git log 两周高级用法结合在一起就能找到想要的 自定义提交的输出格式 --online: 每个提交压缩到一行, 只显示id和提交信息第一行 --decorate: 显示每个节点关联的分支和tag --stat: 每次修改的文件名 -p: 每次修改的精确信息 git shortlog: 每个人的提交记录 --graph…
gitworktree 本地仓库的多个分支在对应的文件夹内管理,能够减少很多操作,便捷高效~ 一 worktree 的基本概念和操作 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv的专栏 - CSDN博客 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv 二 语法速览 最简单的写法: git worktree add <新路径> 将基于当前分支,新建一个 worktre…
一 worktree 的基本概念和操作 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv的专栏 - CSDN博客 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 - walterlv 二 语法速览 最简单的写法: git worktree add <新路径> 将基于当前分支,新建一个 worktree 目录,新的分支名就是新建目录的名称. 新建一个指定分支 git worktree add…
三种方式挨个尝试,1不行用2 2不行用3 1.拉取阶段失败 git worktree add -f -B xxx_branch ./xxx_branch origin/xxx_branch 强制拉取 2.删除worktree目录,再录取 git worktree remove xxx_branch 3.重置worktree分支代码 git reset --hard origin/xxx_branch…
稀疏检出配置: git config core.sparsecheckout true echo another_folder/xxxx/ >> .git/info/sparse-checkout worktree稀疏配置: 1.git worktree add -b xxxx_branch ./xxxx_branchorigin/xxxx_branch --no-checkout ,先使用--no-checkout,然后加配置,然后checkout 2.要在./git/worktrees/x…
格式化Log输出 首先,这篇文章会展示几种git log格式化输出的例子.大多数例子只是通过标记向git log请求或多或少的信息. 如果你不喜欢默认的git log格式,你可以用git config的别名功能来给你想要的格式创建一个快捷方式. Oneline --oneline标记把每一个提交压缩到了一行中.它默认只显示提交ID和提交信息的第一行.git log --oneline的输出一般是这样的: 0e25143 Merge branch 'feature' ad8621a Fix a b…
Git 分支 - 分支的删除 git删除本地分支 git branch -D br git删除远程分支 git push origin :br  (origin 后面有空格) clone服务器上的资源: git@192.168.10.176:/srv/sb.git Git 分支 - 分支的新建与合并 分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤: 开发某个网站. 为实现某个新的需求,创建一个分支. 在这个分支上开展工作.…
转自:https://github.com/geeeeeeeeek/git-recipes/wiki/5.3-Git-log%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95 内容很详细.实用. 这是一篇在原文(BY atlassian)基础上演绎的译文.除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享. 每一个版本控制系统的出现都是为了让你记录代码的变化.你可以看到项目的历史记录——谁贡献了什么.bug是什么时候引入的,还可以撤回有问题的…
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 切换分支 git checkout 撤销对文件的修改 git checkout --file.ext checkout一个文件和带文件路径git reset非常像,除了它更改的是工作目录而不是缓存区.不像提交层面的checkout命令,它不会移动HEAD引用,也就是你不会切换到别的分支上去 如果你缓存并且提交了checkout的文件,它具备将某个文件回撤到之前版本的效果.注意它撤销…
分支管理 分支不是越多越好,只求一个稳定的分支,即master不要轻易去更改 对应master要有一个开发者分支,保证mater分支的稳定性 所有的功能都在开发者分支上进行 在所有功能开发后新建发布分支(release) 上图上半部,只有master这条主线,其他功能分支只要开发完就去与mater融合,这样的操作容易使mater不稳定 上图下半部,在master的基本上创建了一个分支开发者,这样功能沿着开发者分着进行功能分支的创建,会多一道保险 具体操作 这里说一个背景,那就是我们有两条线,一条…
1.分离HEAD.HEAD 总是指向当前分支上最近一次提交记录. 所谓分离HEAD,就是让HEAD直接指向某一条具体的提交记录,而不是默认的通过分支名指向当前分支的最近一条提交记录. 2.相对引用^.如 git checkout HEAD^ 表示移动到当前HEAD指向提交节点的父节点. 3.相对引用~.如 git checkout HEAD~3 表示移动到当前HEAD指向提交节点的上三个祖先节点. (以上三个指令都是让HEAD的指向跳来跳去,那这有什么用呢?有的,它最大的作用在于移动分支,也就是…
常用命令 克隆 - git clone  git@gitee.com:niunafei1/git_learning.git git 创建分支 - git checkout -b dev git 切换分支 - git branch dev - git checkout dev git 分支删除 - git branch -d fix - 如果分支未被合并会异常警告 -D强制删除 - git branch -D fix 创建新分支推送远程 - git push --set-upstream orig…
背景 说来也惭愧,博客已经搭建很久了,一直免费的部署在 Coding 和 Github Pages 上,前者迁移到腾讯云 Serverless,导致原有的配置始终有问题,没时间仔细研究,刚好腾讯服务器有羊毛可以褥,果断作出迁移,至于选择腾讯云,是因为当初备案在腾讯云,但是购买域名是在阿里,感觉好拧巴,但是整体互不相关,没啥影响 部署环境 环境 本地环境 MacOS Monterey 12.0.1 服务器环境 CentOS Linux release 8.2.2004 (Core) 本地环境配置…
Git 历史相关和 git config 高级进阶 前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git相关, 看看如何通过配置自己的 git config 让自己的 git 用起来更顺手. git log 进阶 在一行显示 git log git log --pretty =oneline在一行显示 git log. git log --oneline --stat ,显示每个文件的变化行数,其中后面跟的--…
工具|浅谈Git Git这个工具,是我一直想写文章,终于我实现了我的想法.在我开始写之前,发表一下自己的看法,git只是一个工具,既然已经认定是一个工具,那么一定具备工具这类的共同特征,请用面向对象的鸭子类型去理解就好~~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 目录 1.Git介绍 2.Git下载安装 3.Git的基本使用 3.1 小结git基本使用 4.Git的…
本文参考于:http://www.zhanglian2010.cn/2014/07/git-pull-vs-fetch-and-merge/ 使用git fetch和git pull都可以更新远程仓库的代码到本地,但是它们之间还是有区别 git fetch git fetch origin master git log -p master..origin/master git merge origin/master 从远程的origin仓库的master主分支更新最新的版本到origin/mas…
Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照,某一次的提交指向这处时刻的文件快照,看起来就像每次提交都保存了当时的文件,连续的提交形成一条长链 分支 指向某一个特定的提交,不同的分支可以指向同一个提交,此时它们是相同的:不指向一个提交的分支,按提交的顺序排序,指向提交靠前的分支在指向提交靠后的分支前面:由于不同的分支都可以提交新的提交,这些就打乱原来链状的提交,开成分叉,这时回到原来的分支,需要合并,丢弃不用分支要删除,当然首先得创建分支. X-k_@HK ~/Deskto…
homepage faq contribute bugs questions Git for Windows v2.11.0 Release Notes Latest update: December 1st 2016 Introduction These release notes describe issues specific to the Git for Windows release. The release notes covering the history of the core…
接下来我们将以 Centos 为例搭建 Git 服务器. 1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git 接下来我们 使用root账户创建一个git用户组和用户,用来运行git服务: $ groupadd git $ adduser git -g git 2.创建证书登录 收集所有需要登录的用户的公钥,公钥位于id_rs…
导读 Git被越来越多的公司使用,因此我们需要了解Git使用过程中的一些技巧. 一.Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git config --global alias. git config --global alias.st status 设置git为大小写敏感 git config --global core.ignorecase false 二.Help:常用的辅助查询命令 在git 命令行里查看everyday…
https://git-scm.com/docs/git -C <path> Run as if git was started in <path> instead of the current working directory. When multiple -C options are given, each subsequent non-absolute -C <path> is interpreted relative to the preceding -C &…
highlight: 在国内由于众所周知的原因,composer的package可能无法访问,解决办法是使用中国的全镜像: composer config -g repositories.packagist composer http://packagist.phpcomposer.com 在需要使用composer package的地方创建composer.json: { "name": "kidsit/myphppackage", "type"…
要做什么 假设你有一个博客,有一台网站服务器(或者很多台作负载均衡的服务器),当你的博客要升级时,你可能要在你自己的电脑上写好代码(可能包括本地调试好),然后提交到git(或svn),然后在每个服务器中checkout一份代码并重启服务器应用…… 这里要介绍的是一种直接在本地提交代码,即可自动完成服务器部署的方法. 怎么做 假设你有网站主机(后面统称线上机): user:user host:1.2.3.4 password:passwd 并且确保你的本地开发机器(后面统称开发机)与线上机均已安装…
在2.6版本发布两个月之后,Git 2.7发布.该版本带来了许多新特性以及性能的提升. 本文选取了Git 2.7带来的主要变化: git remote支持get-url子命令,可以显示指定远端的URL. git rebase新增了一个命令行选项--no-autostash,可以覆盖配置变量rebase.autostash. git worktree支持list子命令,可以显示代码库的工作树及相关的分支.工作树是Git 2.5初次引入的一个特性,旨在使在同一个代码库的多个分支上工作更简单. git…
git中文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob的形式分别存储在数据库中(.git/objects),并用SHA-1值来校验. 索引文件用识别码列出相关的blob文件以及别的数据.对于提交来说,以树(tree)的形式存储,同样用对于的哈希值识别.树对应着工作目录中的文件夹,树中包含的 树或者blob对象对应着相应的子目录和文件.每次提交都存储下它的上一级树的识别码. 如果用detached HEAD提交,那么最后一次提交会被the reflog for…
继续上篇Git基础教程(一),在开篇之前,先回顾一下上篇中的基本命令. 配置命令:git config --global * 版本库初始化:git init 向版本库添加文件:git add * 提交文件:git commit * 查看状态:git status 查看修改详情:git diff * 查看日志:git log (*) 恢复版本:git reset * 撤销:git checkout -- * 删除:git rm * 配置github:ssh-keygen -t rsa -C "**…