git使用

本文详细介绍了Git的使用,包括配置用户名和邮箱、项目管理、分支操作、与Gitee/GitHub的绑定、远程仓库的各种操作,以及解决大文件、缓存和权限问题的技巧。内容涵盖从基本命令到高级实践,是Git初学者和进阶者的实用指南。
摘要由CSDN通过智能技术生成

git使用

1 使用前配置用户名和邮箱

# 设置用户名
git config --global user.name "gxt_kt"
# 设置邮箱
git config --global user.email "gxt_kt@163.com"

# 读取用户名
git config --global user.name
# 读取邮箱
git config --global user.email

2 管理项目

初始化:git init

会在文件夹生成 .git 文件夹

下图为git存储流程
在这里插入图片描述

常用命令:

git add (工作区 --> 暂存区)

git commit (暂存区 --> 本地仓库)

git status 查看修改状态

git add name 添加单个文件 一般使用 git add . 添加所有

git commit -m “注释” 提交内容到当前分支

git log [option] 查看提交记录

  • –all 显示所有分支
  • –pretty=oneline 将提交信息显示为一行
  • –abbrev-commit 使得输出的commitId更简短
  • –graph 以图的形式显示

使用:

git init
git add .
git commit -m "push"

# 查看历史版本
git log --all --pretty=oneline --abbrev-commit --graph
# 回退到某个版本
git reset commitID --hard

3 分支

常用命令:

git branch 查看分支

git branch name 创建分支

git checkout name 切换分支

git checkout name -b 分支若不存在就创建并切换

git merge name 把name合并到当前所在分支

git branch -d name 删除分支,需要做各种检查

git branch -D name 不做检查就删除分支

使用:

git branch
git branch branch_test1
git checkout branch_test1

# 对文件进行一些修改。。。。。。

git add .
git commit -m "push"
git checkout master
git merge branch_test1 #对修改合并到master
git branch -d branch_test1

4 gitee/github绑定

本地获取SSH公钥:

ssh-keygen -t rsa # 并回车确定,如果存在就覆盖
cat ~/.ssh/id_rsa.pub # 获取公钥

gitee / github 端填写相应公钥

进行测试:

ssh -T git@gitee.com # gitee
ssh -T git@github.com # github

成功:
在这里插入图片描述

5 远程仓库操作

首先云端有一个仓库,知道了仓库的ssh地址

关联远程仓库: git remote add <远端名称> <仓库路径>

git remote add origin git@gitee.com:gxt-kt/git_test.git

关联错了或者需要重新关联可以:git remote rm origin

查看远程仓库:git remote

推送到远程仓库: git push origin master 可以-f 表示强制覆盖

使用:

# 先创建一个远程仓库,把ssh地址记下来为xxxxxx
git remote add origin xxxxxx
git push origin ****** # 推送master/分支

6 远程仓库其它常用命令

  • git clone <仓库路径> [本地目录] 本地目录可以直接省略

​ 默认下载git的默认分支,如果需要下载指定分支,需要

git clone -b branchname https://github.com/xxx/xxx.git

  • git pull 将远程仓库修改再拉取到本地(更新)

​ 有时会失效,是因为没有建立和远程仓库的联系,可以直接 git pull origin master

7 .gitignore 使用

vim .gitignore

可以在文件里写不需要提交的内容

例如:

/build/*
build/
*.txt
/src/test.cpp

实测写成./build/*会不起作用

8 删除仓库中大文件(踩坑)

最开始如果在.gitignore中没有写好一些大文件就提交,会有大文件存在git中,后面会很难删除,github大于100M也不允许上传

解决方法参考:https://www.jianshu.com/p/fe3023bdc825

  • 查看文件大小 ``du -ah .git/objects`
  • 占用空间最多的五个文件 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

从 git 历史中移除

git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch 想要删除大文件名' --prune-empty --tag-name-filter cat -- --all

注意这里想要删除大文件名需要写成相对路径,不能只写文件名(maybe)

另外好像是包含这个文件的分支都要进去删掉(maybe)

清除后刷下git

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
git push origin master --force #强制推送,慎用

9 删除缓存(以前提交的一些内容还在比如build文件夹)(踩坑)

在gitignore中添加build/并不会让build文件夹直接消失,原因是git已经tracking了某些想忽略的文件,需要我们自己手动删除已经tracking的文件

git rm -r --cached ignoreFile

// 例如 git rm -r --cached build/

需要指出,这个指令只会删除当前分支下的缓存文件

10. push时总是要提交密码,对了也会缺少权限

主要是使用了http进行连接,改用git就没有这个问题
先断连一下:

git remote rm origin

再连接时选择git,不要选http

git remote add origin git@gitee.com:gxt-kt/******.git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值