git版本控制
介绍:一个免费开发,分布式的代码版本控制系统,维护代码,存储代码版本
作用:记录某一时刻的代码版本,本地记录或者远程记录,切换分支开发,多人开发时可高效合并代码内容
下载:https://git-scm.com/等
检查是否下载成功:
1.鼠标右键
2.打开命令行窗口
window+R输入cmd打开命令行,输入git --version
3.在VScode
中检查
个人本机使用
配置自己的用户名和邮箱,表明自己的身份
使用git bash
或者命令行窗口进行设置
git config --global -l
可以查看自己git的配置
git config --global user.name "cc"
git config --global user.email "cc.com.cn"
创建git
仓库(记录文件版本内容的地方,存储这修改的历史记录)
在你创建的项目下初始化git
仓库
git init
从远程(github
或者gitee
等)克隆git仓库
git clone 路径
Git
的三个区域
工作区:实际开发时操作的文件夹
暂存区:暂时改动过的文件
版本库:提交并保存暂存区内的内容,产生一个版本快照,一个版本号。
命令 | 作用 |
---|---|
git add 文件名 | 将指定文件暂存 |
git add . | 将所有改动的文件暂存 |
git commit -m ‘注释说明’ | 将暂存的内容提交版本库,产生版本快照 |
注意:文件名为以终端为起初的相对路径
Git
的文件提示状态
文件状态(文件右侧显示内容) | ||
---|---|---|
未跟踪(U) | 从未被git管理过 | 新文件 |
新添加(A) | 第一次被git暂存 | 之前版本记录无此文件 |
未修改(’ ') | 三个区域统一 | 提交commit保存后 |
已修改(M) | 工作内容发生变化 | 修改了工作区文件 |
查看文件状态
git status -s
Git
暂存区的使用
临时存储,可以临时恢复代码,与版本库解耦
暂存区回退:覆盖工作区
git restore 目标文件
从暂存区移除文件
git rm --cached 目标文件
也可以在工作区改,重新暂存,git add
Git
版本库回退版本
把版本库某个版本对应的内容,回复到工作区/暂存区
回退命令:保留为保留版本之后新的改动
工作区和暂存区都保留,只有版本库回退
git reset --soft 版本号
不保留,三个区域都保留,版本快照覆盖工作区和暂存区
git reset --hard 版本号
工作区保留,暂存区不保留
git reset --mixed 版本号 (默认,与 git reset 等价)
删除文件
直接在工作区删除,重新提交,产生版本快照
比较文件差异
命令 | 比较 |
---|---|
git diff | 工作区和暂存区比较 |
git diff HEAD | 工作区和版本库的比较 |
git diff --catch | 暂存区和版本库 |
git diff 两个版本号 | 两个版本之间的比较 |
git diff HEAD~HEAD | 当前版本和上一个版本 |
git diff HEAD~2 | 之前的两个版本和当前版本 |
git diff HEAD~HEAD text.txt | 指定文件比较 |
忽略文件
在提交之前进行配置忽略文件,让仓库更小更快,避免没有意义的文件提交
可以去github
上去找模版使用
.gitignore
文件
像vue项目创建时的忽略文件
分支
指针HEAD指向的默认为master,为主线,为当前的版本
作用:在现有代码上分支出来开发不同的功能或者修复bug,多人协同开发,不影响主线
创建分支的命令
git branch 分支名(创建了dev分支)
此时的指针指向为
需要切换到分支上
git checkout dev
然后进行git add . git commit -m ''便是在分支上操作了
技巧:git checkout -b 分支名;创建并立即切换分支
分支的合并与删除
- 切换回主线
git checkout master
- 合并其他分支(dev)
git merge dev
- 删除已经合并后的分支指针
-D为强制删除
git branch -d dev
合并后产后版本快照
分支合并的冲突
如果在不同的分支中同时修改了同一个文件,产生合并冲突,git无法合并。
在vscode
中找到冲突文件并手动解决,解决后需要提交一次记录
git log --graph
可以查看版本记录,并查看时间和作者
不解决冲突可以退出合并
git merge --quit
git远程仓库,多人协同开发
介绍:从远程仓库拿到自己开发的代码,和将自己开发的代码从本地仓库提交到远程仓库(gitee、github/gitlab等)
作用:多人协作,托管在远程的仓库里
使用远程仓库代码
git clone 地址
后续提交
暂存
git add .
提交版本库
git commit -m '注释说明'
拉取远程修改过的代码
git pull
提交自己修改的代码
git push
本地仓库上传远程仓库
- 查看远程仓库和本地仓库的主线名字是否一致
github上默认为main,本地可能默认为master
如果不一致,可以重命名
重命名
git branch -M main
- 本地仓库添加远程仓库地址
git remote add 远程仓库别名(origin) 远程仓库地址
查看远程仓库
git remote -v
删除远程仓库
git remote remove 远程仓库别名
- 改变主支名
git branch -M main
- 本地git仓库推送版本记录到远程仓库
git push -u origin main
可能会遇到vpn导致的端口不一致
解决方法:
设置-> 网络和Internet-> 代理
打开代理服务器
设置git 的端口一致
git config --global http.proxy 127.0.0.1:10809
git config --global https.proxy 127.0.0.1:10809
然后再执行
git push -u origin main
后续进行提交时
只需要
git pull
git push