Git常用命令备忘录
Git常用命令
复制仓库
git clone <URL>
分支管理
创建本地分支
git branch <分支名称>
查看源分支
git branch -r
检出分支
git checkout <分支名称>
撤销更新
撤销未staged的更新
撤销所有未staged的更新
git checkout -- .
撤销指定的未staged的更新
git checkout -- <文件>
撤销已经staged但未提交的代码
git reset HEAD .
git reset HEAD <filepathname>
撤销已经commited但未提交的代码
git reset --hard HEAD^
git reset --hard <commitid>
大文件存储(LFS)
Github对文件大小的限制大概为100MB,如果单个文件超过100MB,在git push时会提示“this exceeds GitHub’s file size limit of 100.00 MB”,然后需要通过git的LFS插件来实现提交,下面是具体的步骤。
Git的LFS插件安装
参考[1]
Installation on Mac OSX
brew install git-lfs
Installation on CentOS 7
wget -c https://packagecloud.io/github/git-lfs/packages/el/7/git-lfs-2.13.2-1.el7.x86_64.rpm/download -O git-lfs-2.13.2-1.el7.x86_64.rpm
yum localinstall git-lfs-2.13.2-1.el7.x86_64.rpm
配置LFS的过滤器
需要指明哪些文件要通过LFS来提交。下面以tar.gz结尾的大文件为例,如下操作在项目的根目录进行。
git lfs track '*.tar.gz'
git add .gitattributes
git commit -m "track .tar.gz"
如果track的文件类型或者文件名称有问题,则可以直接编辑.gitattributes或者通过git lfs untrack来解除跟踪LFS。
git lfs untrack '*.tar.gz'
推送大文件
推送大文件有2种方式:一种是对于全新的项目,之前没有提交过大文件,则可以直接通过git add及后续步骤完成;另外一种对于已经提交过大文件,或者第一种方式不工作的情况下,需要通过git lfs migrate来解决。
方法一
git rm --cached bin/go1.15.8.linux-amd64.tar.gz
git add bin/go1.15.8.linux-amd64.tar.gz
git commit -m "commit golang tar.gz"
git push
如果git push还是会提示原来类似的错误,说明LFS配置有问题。可以通过如下命令查看LFS配置情况,如果没有返回结果,说明配置不正确。此时可以考虑方法二。
git lfs ls-files
git lfs status
方法二
此方法可以迁移历史数据。
git lfs migrate import --include="*.tar.gz"
git lfs ls-files
git push --force