Git基础学习
一、Git和GitHub基本操作
1.Git安装
git下载地址:https://git-scm.com/downloads
没有安装git
C:\Users\user>git --version 'git' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\user>
成功安装git
C:\Users\user>git --version git version 2.31.1.windows.1 C:\Users\user>
2.GitHub账号注册
github官网:https://github.com/
3.仓库概念和创建仓库
创建仓库:
1.点击“+”下的New repository
2.填写仓库名称,描述等信息
3.点击Create repository创建仓库成功
4.上传代码到GitHub
步骤:
1.新建文件夹,写代码
2.git init
在本地初始化一个git仓库
PS C:\Users\user\Desktop\QQ音乐> git init Initialized empty Git repository in C:/Users/user/Desktop/QQ音乐/.git/
3.git add README
添加工作目录的文件到暂存区
4.git commit -m
提交暂存区的文件,带有提交消息
5.git remote add origin “远程仓库地址”
6.git push -u origin master
注意事项
1.在vscode中使用Git,需要将系统npm目录添加到环境变量
C:\Users\user\AppData\Roaming\npm
2.git push时需要获取token;
获取路径:Settings/Developer settings/Personal access tokens
3.我们在创建仓库的时候,都会勾选“使用Reamdme文件初始化这个仓库”这个操作初识了一个README文件并配置添加了忽略文件,可能会出现提交失败的情况,使用一下命令解决
git pull --rebase origin master
二、独立使用Git的基本
1.查找操作记录
git log
查看某个人的操作记录
git log --author=“提交人姓名”
2.配置用户名和邮箱
git config --global user.name “用户名”
git config --global user.email “邮箱”
检查邮箱是否配置成功
git config --global --list
3.修改项目中的文件
1.修改文件
2.git add .
3.git commit -m
4.删除不需要的文件
1.删除文件
2.git status查看
3.git add .
4.git commit -m
5.给文件重命名
1.修改文件名
2.git add .
3.git commit -m
6.git clone命令
git clone [url]
// 拷贝指定分支的代码
git clone -b master [url]
三、使用Git的常见问题和解决方法
1.文件有变化时查看前后变化
git log --pretty=oneline index.html
PS C:\Users\user\Desktop\QQmusic> git log --pretty=oneline index.html 62e3ee8e1231f63e3afaad295c26e2f532b8b8a3 测试改动 97cbcd03b6e81213787205c5b3bd6305800161aa 测试改动 d687ece0074e640669ca6a19c3595fec08caee6f (origin/master) QQ音乐第一次提交
2.操作失误一键还原
其实就是让文件回到上一个状态
1.git diff
查看不同之处
PS C:\Users\user\Desktop\QQmusic> git diff diff --git a/images/bg_detail.jpg b/images/bg_detail.jpg deleted file mode 100644 index b3687de..0000000 Binary files a/images/bg_detail.jpg and /dev/null differ PS C:\Users\user\Desktop\QQmusic>
2.git checkout – images/bg_detail.jpg
3.不再追踪时如何实现撤销追踪操作
将文件加到了暂存区,使用git checkout 无法还原,因为git已经对文件追踪。可以使用git reset进行还原
PS C:\Users\user\Desktop\QQmusic> git reset HEAD index.html Unstaged changes after reset: M index.html
4.回到项目上一版本或者指定版本
一个^代表回退一个版本
PS C:\Users\user\Desktop\QQmusic> git reset --hard HEAD^ HEAD is now at 07107a9 版本1
回到指定的某个版本
PS C:\Users\user\Desktop\QQmusic> git reset --hard 07107a HEAD is now at 07107a9 版本1
commitID有七八位即可,不必全部复制;使用git log时,空格键可上下翻页
5.将某一文件回到指定版本
git checkout 版本号 – 文件路径
6.修改内容后提交到远程仓库
1.git pull
2.git add .
3.git commit -m
4.git push origin master(分支)
7.创建标签,做版本管理
创建标签
git tag v1.0(版本号)
检查标签是否创建成功
PS C:\Users\user\Desktop\QQmusic> git tag v1.0
此时如果查看日志,便会有了版本号
PS C:\Users\user\Desktop\QQmusic> git log commit 07107a96e68fddebec4d46792b81a73ceec875e0 (HEAD -> master, tag: v1.0) Author: zhongdiaobing <862912711@qq.com> Date: Mon Jan 3 21:22:12 2022 +0800
如果需要将tag打在某个版本,需要拿到commitID
git tag v0.5 commitID
删除标签
git tag -d 版本号
PS C:\Users\user\Desktop\QQmusic> git tag -d v0.5 Deleted tag 'v0.5' (was 8f2a066)
将标签推送到远程仓库
git push origin 版本号 PS C:\Users\user\Desktop\QQmusic> git push origin v1.0 Enumerating objects: 13, done. Counting objects: 100% (13/13), done. Delta compression using up to 8 threads Compressing objects: 100% (11/11), done. Writing objects: 100% (11/11), 1.10 KiB | 1.10 MiB/s, done. Total 11 (delta 6), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (6/6), completed with 2 local objects. To https://github.com/zhongdiaobing/QQmusic.git * [new tag] v1.0 -> v1.0
8.创建、切换、删除分支
创建分支
PS C:\Users\user\Desktop\QQmusic> git branch * master PS C:\Users\user\Desktop\QQmusic> git branch dev PS C:\Users\user\Desktop\QQmusic> git branch dev * master
切换分支
PS C:\Users\user\Desktop\QQmusic> git checkout dev Switched to branch 'dev' PS C:\Users\user\Desktop\QQmusic> git branch * dev master PS C:\Users\user\Desktop\QQmusic>
删除分支
注意:删除分支时不能删除当前分支,强制删除使用git branch -D
PS C:\Users\user\Desktop\QQmusic> git branch -d test Deleted branch test (was 07107a9). PS C:\Users\user\Desktop\QQmusic> git branch * dev master PS C:\Users\user\Desktop\QQmusic>
创建并切换分支
PS C:\Users\user\Desktop\QQmusic> git checkout -b pin Switched to a new branch 'pin' PS C:\Users\user\Desktop\QQmusic> git branch dev master * pin PS C:\Users\user\Desktop\QQmusic>
9.合并分支
1.切换到非master分支
git checkout dev
2.git add .
3.git commit -m
4.切换到master分支
5.git merge dev(合并分支)
PS C:\Users\user\Desktop\QQmusic> git merge dev Updating 07107a9..5ff64a9 Fast-forward index.html | 1 + 1 file changed, 1 insertion(+) PS C:\Users\user\Desktop\QQmusic>
10.解决版本冲突
可能场景:
1.master分支修改Dev的代码
2.git add .
3.git commit -m
4.切换到Dev分支
5.git add .
6.git commit -am
7.切换到master
8.git merge dev
user@kuaisuzhe-Z18 MINGW64 ~/Desktop/QQmusic (master) $ git merge dev Auto-merging happy.html CONFLICT (content): Merge conflict in happy.html Automatic merge failed; fix conflicts and then commit the result.
两种方式解决:
第一种:
git merge --abort:直接忽略其他分支的内容,保留当前分支的内容
第二种:手动删除
1.手动删除不需要的代码,点击保存
2.git add .
3.git commit 进行编辑页面,点击 i 编辑,保存退出
4.git commit -m “提交信息”