git的使用
目录
1.git是什么?
git是一款免费、开源的分布式版本控制系统,可以高效的管理项目。通过git可以进行代码的管理。
2.git的安装
去官网下载对应系统版本的安装包,点击安装,一直下一步即可(注意:最好默认安装路径,不要修改,不要安装在中文目录下),安装完成后,任意位置点击右键可以看见Git GUI Here 和 Git Bush Here就表示安装成功。
3.git账号注册
按照要求进行注册即可
1.github(GitHub: Where the world builds software · GitHub)
2.gitee(Gitee - 基于 Git 的代码托管和研发协作平台)
4.git的三个区
4.1 工作区:写代码的地方,工作的目录就叫工作区
4.2 暂存区: 在git中,代码无法直接从工作区提交到仓库区,需要先添加到暂存区,再提交到仓库区。目的是为了避免误操作
4.3 仓库区:将临时保存在暂存区的代码提交到仓库区永久存档保存,提交到仓库区,每次都会有提交记录,有需要可以通过版本号回退到任意一次版本。
5.git基本命令
5.1 git init
项目想要被git管理,就需要初始化一个git仓库,初始化完成,会生成一个.git隐藏文件夹,可以通过查看显示隐藏文件
# 初始化仓库, 在当前目录下生成一个隐藏文件夹.git git init
5.2 git add
将工作区的文件添加到暂存区
命令:git add 文件名/目录名
# 将index.html添加到暂存区 git add index.html # 将css目录下所有的文件添加到暂存区 git add css # 添加当前目录下所有的文件 git add --all git add . git add -A
5.3 git commit
将暂存区的文件提交到仓库区,生成版本号进行存档
# 将文件从暂存区提交到仓库 git commit -m "提交说明" # 如果不写提交说明,会进入vi编辑器,没有写提交说明,是提交不成功的。 :q! 或者:exit 可以退出vi编辑器 git commit # 需要使用vi输入内容 vi编辑器常用操作
5.4 git config配置
如果是第一次提交需要配置提交人的信息(用户名和邮箱)
# git config user.name 你的目标用户名 # git config user.email 你的目标邮箱名 # 使用--global参数,配置全局的用户名和邮箱,只需要配置一次即可。推荐配置github的用户名和密码 git config --global user.name hucongcong git config --global user.email flycc258@163.com git config --global --list 查看配置
5.5 git status
查看文件的状态
红色表示文件在工作区,需要添加到暂存区
绿色表示文件字啊暂存区,需要提交到仓库区
5.6 查看提交日志
// 查看详细提交日志 git log // 日志以一行形式显示 git log --oneline // 查看所有日志(所有提交记录) git reflog
6. git 重置
想要回退到之前提交的某个版本,可以进行版本回退
git reset --hard 版本号(复制版本号的前六七位即可)
想要进行版本回退要先查询版本号,配合git log查询之前的版本提交信息, git reflog 可以查看所有提交的版本信息。
7. git忽视文件
有些文件不想被git管理,git可以通过配置从而达到忽视掉一些文件,这样这些文件就可以不用提交了。
-
在仓库的根目录创建一个
.gitignore
的文件,文件名是固定的。 -
将不需要被git管理的文件路径添加到
.gitignore
中
# 忽视idea.txt文件 idea.txt # 忽视css下的index.js文件 css/index.js # 忽视css下的所有的js文件 css/*.js # 忽视css文件夹 css
8. git分支操作
分支的作用:可以多人协同开发,互不影响;可以在分支上保存未完成的代码,完成后再合并到主分支上。
9. git分支命令
9.1 创建分支
git在提交后,有一个默认的主分支master,分支就是独立于主分支,可以在分支代码功能完成后再合并到主分支上。
// 创建一个分支,进行某个功能模块的开发 git branch 分支名
9.2 查看分支
git branch
通过查看可以看见所有的分支,当前分支前会有星号
9.3 切换分支
git checkout 分支名称
在当前分支进行操作,不会影响其他分支,一般在分支上进完成能模块,完成后切换到主分支,把分支代码合并到主分支上
9.4 创建分支并切换分支
git checkout -b 分支名称
该命令会创建一个分支并自动切换到该分支
9.5 删除分支
git branch -b 分支名称
分支功能完成并合并到主分支后,可以进行删除,但是不能再当前分支删除当前分支,一般切换到master主分支上再删除分支。
9.6 合并分支
git merge 分支名称
可以将其他分支合并到当前分支,一般在master主分支上合并其他分支
9.7 合并冲突
多个分支都使用修改了同一文件,在合并时就会出现冲突,git在合并时会进行提示,我们一般会保存冲突的代码,进行位置调整,再次进行添加提交。
10. 远程仓库
公司会有一台服务器作为远程仓库
注意:git 和 GitHub以及gitee没有任何关系,git是项目代码版本控制工具,而GitHub和gitee 都是代码托管平台,相当于git的远程仓库
10.1 git clone
一般第一次工作前会将远程仓库中的项目代码克隆到本地,再进行具体功能的开发
git clone 远程仓库地址
10.2 git push
git commit提交是本地仓库,如果本地电脑出现什么问题,项目代码都丢失,通过git push提交到远程仓库的代码可以永久保存,并且任何人都可以通过远程仓库下载代码
//在代码提交到远程仓库,注意master分支必须写,不能省略 git push 远程仓库地址 master
第一次提交的时候,需要提交GitHub或者gitee的账号和密码,后续window保存了凭证就不需要填写。
10.3 git pull
将远程仓库的代码拉取到本地,远程仓库代码更新,提交前就需要先拉取个最新的代码再进行提交,通常在push前,需要先pull一次。
# 获取远程仓库的更新,并且与本地的分支进行合并 git pull
10.4 git remote
每次提交代码到远程仓库,都要填写仓库的地址,不方便,可以给仓库设置一个别名,简化操作,远程仓库有一个默认的origin的别名
git remote -v 查看当前仓库的所有的别名 # 给远程仓库设置一个别名 git remote add 仓库别名 仓库地址 # 删除hucongcong这个别名 git remote remove 仓库别名
11. SSH免密码登录
git支持多种数据传输协议,https协议需要输入用户名和密码,ssh协议可以通过配置公钥和私钥进行免密码登录。
每次push或者pull代码,如果使用https协议,那么都需要输入用户名和密码进行身份的确认,非常麻烦(现在window有凭证管理功能,第一次输入后就会保存,之后无需输入)。
使用ssh协议,配置ssh免密码,可以做到免密码往github推送代码。
SSH免密码登录配置
注意:这些命令需要在bash中敲
-
1 创建SSH Key:
ssh-keygen -t rsa
敲3次回车 -
2 在文件路径
C:\Users\当前用户名\
找到.ssh
文件夹 -
3 文件夹中有两个文件:
-
私钥:
id_rsa
-
公钥:
id_rsa.pub
-
-
4 在
github -> settings -> SSH and GPG keys
页面中,新创建SSH key -
5 粘贴 公钥
id_rsa.pub
内容到对应文本框中 -
5 在github中新建仓库或者使用现在仓库,拿到
git@github.com:用户名/仓库名.git
-
6 此后,再次SSH方式与github“通信”,不用输入密码确认身份了