git操作
https://www.bilibili.com/video/BV1HM411377j
初始化
配置用户名:git config --global user.name "用户名"
配置邮箱:git config --global user.email "用户邮箱"
存储配置:git config --global credential.helper store
查看配置:git config --global --list
参数设置:
仓库
创建仓库
本地创建:git init "仓库名"
,省略仓库名会直接在当前地址创建。
远程克隆:git clone <url>
四个区域和文件状态
文件操作
文件状态
git status
,可查看仓库内的状态
查看仓库文件
git ls-files
将文件添加到暂存区
git add <file>
文件提交
git commit
,将暂存区的文件提交,不会提交工作区的文件。
git commit -m
用于提交暂存区的文件
git commit -am
用于提交跟踪过的文件,可以写成git commit -a -m
,但不能交换参数位置
注意:提交的时候需要添加说明,如弹出要求,使用git commit -m '内容说明'
即可
仓库提交历史记录
git log
,添加--oneline
可只显示版本号
版本回退
git reset
,包含三种模式:
git reset --soft
回退并保留工作区和暂存区内容
git reset --hard
回退,不保留工作区和暂存区内容
git reset --mixed
默认参数,保留工作区内容,不保留暂存区内容
通过git log -oneline
查看提交内容的版本号,在git reset
后加上版本号即可指定版本,也可使用HEAD^
回到上一个版本。也可使用版本号撤回误操作的指令。
比较差异
git diff
默认比较工作区和暂存区之间的差异
如图所示,文件内容若有差异,会显示出来。若无差异则无内容。
加上HEAD
会比较工作区与版本库的差异,加上cached
会比较暂存区与版本库之间的差异。
加上两个版本号id可以比较两次提交之间的差异。
加上文件名,只会显示指定文件的差异内容。
文件删除
git rm <文件名>
和git rm -f <路径>
删除对应文件/路径内的文件,然后使用git commit
提交,删除仓库内对应文件。
忽略文件
在.gitignore
文件中写入一个未被添加至版本库的文件/文件夹,git会忽略此文件/文件夹,不进行提交。
如下图所示,hello.log
不再显示:
远程仓库
SSH配置和克隆仓库
通过在github上配置SSH密钥,可以实现主机与github之间的免密仓库操作。主机只要配置过一次即可。
Github配置ssh key的步骤(大白话+包含原理解释)_github生成ssh key-CSDN博客
.ssh文件位置:C:\Users\Administrator\.ssh
使用git clone <SHH地址>
克隆仓库
git push
将本地仓库更新内容推送至远程仓库
git pull
拉取远程仓库更新内容
分支上传与合并
创建分支:
1 | git checkout -b '分支名' |
提交分支:
1 | git add . |
将分支推送至远程仓库:
1 | git push -u origin '刚刚的分支名' |
将本地分支合并到本地main分支:
1 | git checkout main |
提交并更新至远程仓库:
1 | git push |