学习视频推荐
笔记推荐
https://blog.csdn.net/a18307096730/article/details/124586216?spm=1001.2014.3001.5502
https://blog.csdn.net/weixin_42312323/article/details/107407674
1、Git环境配置
安装Git
Git下载链接
点击右键出现
Git GUI Here(Git提供的图形界面工具)
和
Git Bash Here(Git提供的命令行工具)
则安装成功
1.1 基本配置
打开Git Bash
1.1.1设置用户信息
git config --global user.name "zhangfeifei"
git config --global user.email "zhangfeifei@163.com"
1.1.2 查看配置信息
git config --global user.name
git config --global user.email
1.1.3 为常用指令配置别名
打开用户目录,创建.bashrc文件
部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行 touch ~/.bashrc
在.bashrc中输入以下内容
#用于输出git提交日志
git log --pretty=oneline --all --graph --abbrev-commit
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
#改完后利用以下命令生效
source ~/.bashrc
1.2 获取本地仓库
要使用Git对我们的代码进行版本控制,首先需要获得本地仓库
- 1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
- 2)进入这个目录中,点击右键打开Git bash窗口
- 3)执行命令git init
- 4)如果创建成功后可在文件夹下看到隐藏的.git目录。
1.3 基础操作指令
Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。
- git add (工作区——>暂存区)
- git commit (暂存区——>本地仓库)
1.3.1 未跟踪提交相关案例
创建 file01.txt文件
touch file01.txt
查看当前状态
git status
把所有的修改文件放入暂存区
git add .
再次查看当前状态,发现file01.txt文件已经被放置到暂存区
最后的目的是把修改的文件放置到仓库进行版本控制
因此用 git commit -m "提示修改了什么" 命令提交暂存区修改的部分
git commit - "add file01.txt"
再次查看状态,发现缓存区已经清空
利用git log 命令查看提交到了哪里
git log
1.3.2 修改提交相关案例
对file01.txt文件进行编辑修改 ,i插入文字,esc退出编辑,:wq!保存退出
vim file01.txt
查看文件当前状态
所有的修改放置缓存区
git add .
查看状态
提交至仓库
git commit -m "update file 01"
查看提交日志
git log
1.3.3 版本回退
git reset --hard commitID
commitID 用git log命令查看 (在命令行能看见commitID)
commitID 还能用git reflog查看(在命令行不能看见commitID)
只要不删除文件夹,可以任意的往前往后调整版本
1.3.4 用 .gitignore设置哪些文件无需Git管理
创建file02.a的文件
touch .file02.a
创建 .gitignore,在这个文件里列出哪些文件无需Git管理即可
touch .gitignore
编辑.gitignore,所有以.a结尾的文件均无需git管理
查看状态
发现file02.a文件没有被提示
1.4 分支
分支是为了多个开发人员之间的开发工作互不影响,因此有了分支的概念
1.4.1 查看有哪些分支
git branch
1.4.2 创建分支
git branch dev01
1.4.3 切换分支,head指向谁,当前就在哪个分支
git checkout dev01
以下命令分支不存在也能切换,即先创建再切换,用的更多
git checkout -b dev01
1.4.4 合并分支
刚刚在master分支提交了一个.gitignore文件,现在在dev01创建file02.txt文件,并且提交,如下(还是用上面的简写配置后看上去清晰!!!,不然就要记忆这么多的命令,git log --pretty=oneline --all --graph --abbrev-commit
)
- 对于master分支,有.gitignore文件
- 对于dev01分支,有file02.txt文件
两个分支对应两个开发人员开发的功能,下一步要对这两个分支功能进行合并,那应该怎么样做呢?
一般是把其他的分支合并到master分支上去
首先切换到master分支上
git checkout master
然后把需要合并的dev01分支合并至master分支上去
git merge dev01
随后进入该界面,按ESC,再按:WQ退出即可
查看日志
可以发现在master分支上,dev01分支指向了master分支,代表合并成功。
1.4.5 删除分支
如果有的分支不需要了,就需要对其进行删除
命令如下
#删除分支时进行检查
git branch -d dev01
#强制删除分支,不进行检查
git branch -D dev01
查看当前分支
删除分支dev01
1.4.5 合并冲突
设想一下,如果有两分支对同一个文件的同一行进行了修改,那么在合并的时候,就会有冲突,那应该如何解决呢?
当前有一个master分支,有一个file01.txt文件,文件中内容如下
现在创建一个dev分支对file01.txt文件进行修改,修改后的内容如下
再把master分支上对file01.txt文件进行修改,修改后的内容如下
现在打印日志如下
这时如何把dev分支合并到master上会发生什么呢?
直接找到出问题的文件进行处理,再重新提交即可
1.4.5 开发分支的使用原则与流程
1.3 Git远程仓库
1.3.1 常见的托管服务平台
以Gitee为例
1.3.2 配置SSH公钥
ssh-keygen -t rsa
然后一直回车即可
获取公钥
cat ~/.ssh/id_rsa.pub
复制生成的公钥
验证是否配置成功
ssh -T git@gitee.com
1.3.3 本地仓库与远程仓库对应
找到刚创建的仓库并且复制其SSH链接
添加远程仓库名为origin
git remote add origin git@gitee.com:xhdx/git_test.git
查看是否添加成功
git remote
把本地的代码推到云仓库,并绑定关系,后续只需用git push即可
git push --set-upstream origin master
查看本地仓库与远程仓库的关联关系
git branch -vv
1.3.4 从远端仓库克隆
新建git_test文件夹
git clone git@gitee.com:xhdx/git_test.git
找到远程的项目的SSH链接即可,后面可以加名字,也可以不加默认即可
1.3.5 抓取(fetch)和拉取(pull)
在第一次克隆代码后
如果代码再次更新了,再去克隆就会显得很麻烦
因此只需要更新的部分即可,操作如下
git pull
可以实现即抓取有合并的功能
而
git fetch
只能获取最新的部分,还得手动的去merge远程的分支,如果需要同时抓取和合并,直接git pull。
此外,有merge的地方就可能有冲突,
如一个人修改了file01.txt文件的第一行并上传到云端
另一个人也修改了file01.txt文件并提交至仓库
此时拉取就会出现报错
此处的解决办法同上的merge冲突