Git

分类下相关文章

通过 git lfs 将数据库文件加入 git 项目管理

之前只是看了 git lfs 的介绍,但是没有上手一试,正好遇到新项目想把测试数据库的数据导出,并存储到 git 项目中, 方便其他开发环境导入。 Ubuntu 上安装 git-lfs sudo apt install git-lfs 如果未安装,会提示错误。安装引导安装就好。 > git lfs install fatal: 'lfs' appears to be a git command, but we were not able to execute it. Maybe git-lfs is broken? > git-lfs Command 'git-lfs' not ...

阅读全文...

项目代码版本控制工具 Git - 公司内部培训 PPT 大纲

最好能用一个现场可以演示的案例串起来。 git 简介 Git是目前世界上最先进的分布式版本控制系统(没有之一) 诞生于 2005 年 https://git-scm.com/ Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. git 与 github 的关系 https://github.com/ GitHub 是一个面向开源及私有 ...

阅读全文...

Git LFS 存储图片文件

背景 由于图片识别项目需要用到大量的样本图片,用于逐一测试,调试参数。 为了方便管理,我都放到 Git 项目根目录下的 images 文件夹下了。 但是不知道用 git 存储这类图片文件是否有什么弊端。 Git 不适合做大二进制文件存储 copy 自云效的文档: 效率变慢:不管实际上用户是否使用到这些大文件的历史,都需要把每一个文件的每一个版本下载到本地仓库。毫无疑问,下载耗时的增加给用户带来了更多的等待时间。 空间变大:一个Git仓库存放的大型的文件越多,加之伴随着其关联提交不断增多,Git仓库会以非常快的速率膨胀,占用更多的磁盘空间。 Git LFS 看到一个讨论,都推荐使用 LFS。 ...

阅读全文...

git 无法添加某个子目录问题排查

在拷贝了一个已有项目到新项目目录后,发现有一个子目录无法添加到 git 管理中。 这个子目录的特点是,曾经包含 .git 目录,然后被我手动删除。 但是这个目录再也无法添加到 git 管理中,而且用 git status 也无法显示其状态。 查看已被排除的文件及目录 git status --ignored 并没有发现该目录。 强制添加 如果是添加该子目录,没有任何提示,也没有添加成功。 git add -f backend 强制添加一个文件,才能看到提示信息 git add -f backend/go.mod fatal: Pathspec 'backend/go.mod' is in ...

阅读全文...

CODING 提示: Public key expired

早上向 coding.net git 仓库推送代码的时候报错: > git push origin master CODING 提示: Public key expired. 此个人公钥已经超过有效期,要继续使用请到 https://your_account.coding.net/user/account/setting/keys 更改设置。 fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exist ...

阅读全文...

master 时代的终结,git branch -M main

好久没有在 github 上新建代码项目了,原因是担心服务器上拉取不稳定。但是,对于小程序项目就无所谓了,本地开发环境还是能保证 github 访问的。。。所以为了节省国内 git 仓库的额度,就在 github 私有仓库上存储小程序项目了。 突然发现熟悉的初始化流程变了! > git remote add origin git@github.com:sunzhongwei/some_project.git > git branch -M main > git push -u origin main 多了一行 git branch -M main,隐隐感觉可能跟黑人敏感词 ...

阅读全文...

喜获 Arctic Code Vault Contributor 称号

然而,我感觉很水。。。不知道 Github 的评判标准是什么? 至少不用担心自己的祖传代码失传了。 Arctic Code Vault 计划 中文翻译为“北极代码仓库”计划,即将 Github 上的开源代码,存储在特制的抗氧化的存储介质上,号称可以存储千年以上。 ...

阅读全文...

git 报错: The requested URL returned error: 401 Unauthorized

在新建了一个阿里云 code 代码仓库的账号之后,新建了一批 git 仓库。但是在现有服务器上 push 或者 pull 代码会报错: 执行 $ git pull origin master 如果是 https 协议,则报错: error: The requested URL returned error: 401 Unauthorized while accessing https://code.aliyun.com/xxx/xxx.git/info/refs. fatal: HTTP request failed 如果是 git 协议,则报错: fatal: The remote ...

阅读全文...

Git 取消本地最后一次 commit

背景 早上突然有了个想法,立马修改代码并 Git 提交,但是在 push 时发现没有合并远端最新代码。导致大量的代码冲突 (因为这台电脑很长时间没有更新过这个项目的代码),头一下子大了。。。我都准备删除本地项目,重新拉代码了。但是一想这样太 low 了,还是查查怎么挽救吧,毕竟 git 无所不能。 解决方法 git reset HEAD~ Unstaged changes after reset: M some_file.go some_file.go 就是我早上修改的造成冲突的文件。 git status On branch master Your branch is b ...

阅读全文...

快速将两个代码文件目录合并

背景 我这里的项目代码有 Git 版本控制,但是客户那里没有。所以经常会有这种临时需求,客户会把代码打包发我,我这里进行修改,再打包发回去。 所以,我需要将客户给我的代码包,同我本地的代码进行合并。但是这个过程总不能手动一个个文件进行对比吧。 快速合并 linux 下执行 rsync -avh --progress my_code/src/ client_code/src/ 参数说明: -a archive 模式,将第一个目录内所有的内容都复制到第二个目录 -v verbose 输出 -h human readable --progress 显示进度 之前一直以为 rsync 只能做远程 ...

阅读全文...

Git 对比两个版本间某一个文件的变化

先列出两个版本间发生更改的文件列表 git diff commit1 commit2 --stat --name-only 查看指定文件在两个版本间发生的变更 git diff commit1 commit2 -- somefile.js 如果感觉这种显示不够直观,可以使用 vimdiff 查看 git difftool commit1 commit2 -- somefile.js ...

阅读全文...

语义化版本号 SemVer

今天在看 golang 文档时看到这样一句话 The go.mod file was updated to include explicit versions for your dependencies, where v1.5.2 here is a semver tag What's semver tag ? semver 是 Semantic Versioning 的缩写,即语义化版本号。像 v1.5.2 就是语义化版本号标签。 语义化版本号的版本格式 以 v1.5.2 为例,1.5.2 按照英文句号分割为三部分: 主版本号.次版本号.修订号 主版本号:是你对项目做了不兼容的 API ...

阅读全文...

微软给力!Github 支持无限量免费私有仓库了

Github 官方博客声明 https://blog.github.com/2019-01-07-new-year-new-github/ 之前只有付费用户才能创建私有仓库,现在可以免费无限量创建私有仓库了。 但是,有一个限制,免费版私有仓库只支持三名协作者;要加更多协作者需要付费。 对于个人开发者来说,这已经足够了。 看来微软真是不差钱。希望能把 Visual Studio 的默认 Git 仓库切换为 Github 的。 ...

阅读全文...

Git 统计历史提交的 Commit 总数

命令如下: > git rev-list --all --count 282 可以看到,当前项目的历史提交总数为 282 次。包含了所有分支中的提交。 alias 这个命令太复杂了,很难记住。可以定义一个 alias: 打开 ~/.gitconfig 在 alias 部分增加一行配置 [alias] count = rev-list --all --count 保存。然后就可以使用简写命令了。 > git count 282 ...

阅读全文...

git push 基于 detached HEAD 上的修改

在服务器上调试代码时,做了一件非常愚蠢的事情。由于 revert 失误,产生了一个错误的 commit,为了不影响同事的接口调用,我 checkout 到了一个历史版本上。 然后,我开始不断 revert 有问题的 commit。终于,把代码恢复到了一个正常的状态。 但是,当我想 git push 这些 revert 改动时。 git push origin master 发现无论如何都提交不到 git 仓库,显示并没有 commit 需要提交到 remote。 git status HEAD detached from fa4065e git status 之后,我才意识到,我原来是在一 ...

阅读全文...