Git速成
安装和初始化配置
git版本
git -v |
配置用户名和邮箱
git config --global user.name mikannse |
git config --global user.email mikannse@gmail.com |
自动保存用户名和密码
git config --global credential.helper store |
查看git配置信息
git config --global --list |
新建仓库
git init 或者git clone
工作区域和文件状态
本地分为三个区:
工作区:即计算机上的目录
暂存区(index索引):用于保存即将提交到git仓库的修改内容
本地仓库:即git仓库,是git存储代码和版本信息的主要位置
列举工作目录中各种状态下的文件
git ls-files |
添加和提交文件
添加仓库
git init |
查看仓库状态(分支,文件,文件状态)
git status |
添加到暂存区
git add |
提交
git commit -m "提交的信息" |
也可以使用-a参数,自动添加已被追踪的文件到暂存区,则不再需要手动add
git commit -am "message" |
查看提交记录
git log |
简洁查看
git log --oneline |
回退版本
保留工作区和暂存区
git reset --soft 版本id |
不保留工作区和暂存区
git reset --hard 版本id |
保留工作区,不保留暂存区
git reset --mixed 版本id |
HEAD^表示回退到上一个版本,HEAD表示分支的最新提交节点
查看操作的历史记录
git reflog |
再通过git reset 回溯
查看差异
查看三个区域之间,不同版本,不同分支之间的差异
不加参数默认比较工作区和暂存区的内容
git diff |
比较工作区和版本库之间的差异
git diff HEAD |
比较暂存区和版本库的差异
git diff --cache |
比较两个版本之间的差异
git diff id1 id2 |
比较上(几)个版本和这个目前的差异
git diff HEAD~(1,2,3) HEAD |
git diff 后加上文件名,只会查看这个文件的差异内容
比较分支之间的差异
git diff <branch_name1> <branch_name2> |
从版本库删除文件
方法一
删除本地工作区的文件,更新暂存区然后提交到仓库
方法二
同时删除工作区和暂存区的内容
git rm |
然后提交到仓库区
或者仅删除暂存区的内容
git rm --cache |
忽略文件
.gitignore
不会提交到版本库的文件(除了已经提交到版本库的文件)
例如:系统或者软件自动生成的软件,编译产生的中间和结果文件,运行生成的日志,缓存文件以及隐私文件
使用blob语法写在.gitignore
例子:
#忽略所有的.a文件 |
分支
创建新的分支
git branch <branch_name> |
查看当前处于哪个分支
git branch |
切换分支
git switch <branch_name> |
合并一个分支到当前分支
git merge <branch_name> |
删除一个分支,-d删除已经被合并的分支,-D删除未被合并的分支
把当前分支重定基到另一分支
git rebase <branch> |
Github
远程仓库
ssh配置和克隆仓库
新建ssh密钥,可以通过更改密钥名字来选择新建一个密钥
ssh-keygen -t rsa -b 4096 |
复制.pub公钥文件内容
在github settings中添加ssh公钥内容
如果是新建的密钥,那么需要在~/.ssh/config添加
# github |
新建仓库之后可以通过ssh协议克隆到本地进行关联
git clone git@github.com:username/repo.git |
本地仓库
先创建本地仓库
git remote add <仓库别名默认origin> git@github.com:username/repo.git |
查看当前仓库与远程关联的远程仓库
git remote -v |
指定分支的名字为main(默认即为main,可以省略)
git branch -M main |
将本地的main分支和远程仓库的main分支相关联
git push -u origin main:main |
拉取远程仓库分支到本地分支再进行合并
git pull <shortname> main:main |
只拉取远程仓库分支但不合并
git fetch |
本地仓库关联多个远程仓库
git remote add <shortname> 仓库地址 |
教程文字版整理自BilibiliUP主GeekHour