Learn Git Branching

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

参数设置:

image-20240523013010731

仓库

创建仓库

本地创建:git init "仓库名",省略仓库名会直接在当前地址创建。

远程克隆:git clone <url>

四个区域和文件状态

image-20240523014216620

image-20240523145134799

文件操作

文件状态

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默认比较工作区和暂存区之间的差异

如图所示,文件内容若有差异,会显示出来。若无差异则无内容。

image-20240523150115264

加上HEAD会比较工作区与版本库的差异,加上cached会比较暂存区与版本库之间的差异。

加上两个版本号id可以比较两次提交之间的差异。

加上文件名,只会显示指定文件的差异内容。

文件删除

git rm <文件名>git rm -f <路径>删除对应文件/路径内的文件,然后使用git commit提交,删除仓库内对应文件。

忽略文件

.gitignore文件中写入一个未被添加至版本库的文件/文件夹,git会忽略此文件/文件夹,不进行提交。

如下图所示,hello.log不再显示:

image-20240523155537282



远程仓库

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
2
git add .
git commit -m "填写注释"

将分支推送至远程仓库:

1
git push -u origin '刚刚的分支名'

将本地分支合并到本地main分支:

1
2
git checkout main
git merge home

提交并更新至远程仓库:

1
git push