1.Git介绍 Git是一个开源的分布式版本控制系统,是目前世界上最先进,最流行的版本控制系统,可以快速高效的处理很小到非常大的项目版本管理. (特点:项目越大越复杂,协同开发者越多,越能体现Git的高性能和高可用性!)
2安装配置
**根据自己的操作系统,选择下载对应的 Git 安装包:
https://git-scm.com/downloads ** 安装后按window+R打开输入cmd或者输入powerShell (输入命令 git --version验证)
2.1配置用户信息
Git软件在工作的时候,需要知道你是谁?所以需要设置一个用户名和邮箱。
1.这个用户名和邮箱,最好使用你的github账号或码云账号(如果你有账号的话),当然随便填也可以。
(注意:如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效。
)
2.通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
具体做法:
- 任何文件夹,空白处,右键 --> Git Bash Here
- 依次执行下面两行命令
git config --global user.name "xxx" git config --global user.email "xxx"
配置之后,可以通过下面的命令来检查是否配置成功了
# 查看所有的全局配置项 git config --list --global # 查看单个的配置项,比如查看用户名 git config user.name
**使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。
三种状态
已修改modifdied:已修改表示修改了文件,但还没将修改的结果放到暂存区
已暂存staged:已暂存表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中
已提交 committed:已提交表示文件已经安全地保存在本地的 Git 仓库中
**
(注意:
工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
如果文件已修改并放入暂存区,就属于已暂存状态。
如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。
)
- 初始化 Git 仓库的命令
git init
- 查看文件状态的命令
git status 或 git status -s
- 一次性将文件加入暂存区的命令
git add .
- 将暂存区的文件提交到 Git 仓库的命令
git commit -m “提交消息”
2.Git 分支1.作用
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发,例如:
2.在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个 master 分支叫做主分支。
在实际工作中,master 主分支的作用是:用来保存和记录整个项目已完成的功能代码。
因此,不允许程序员直接在 master 分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。
3.功能分枝
由于程序员不能直接在 master 分支上进行功能的开发,所以就有了功能分支的概念。
功能分支指的是专门用来开发新功能的分支,它是临时从 master 主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到 master 主分支上,如图所示:
4.查看分支列表 git branch (注意:分支名字前面的 * 号表示当前所处的分支。
)
5.创建新分支 使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样: git branch 分枝名称
6.切换分枝 可以切换到指定的分支上进行开发: git checkout login (在先前创建的( git checkout login )login 是要切换的分枝)
7.分支的快速创建和切换
注意:(-b 表示创建一个新分支 checkout表示切换到刚才新建的分支上)
“git checkout -b 分支名称” 是下面两条命令的简写形式:
git branch 分支名称
git checkout 分支名称
9.合并分支
功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master 主分支上:
(合并分支时的注意点:
假设要把 C 分支的代码合并到 A 分支,则必须先切换到 A 分支上,再运行 git merge 命令,来合并 C 分支!
)
10. 遇到冲突时的分支合并
11.分支合并,三方合并
- 三方合并模式中,如果两个分支更改了不同的文件,则合并时会出现如下弹框
- 这是告诉我们,合并成功了,但是,需要提交一次呀
- 提交,就得写提交日志呀
- 这个框,就是让我们写提交日志呢
- 画面中,黄色的 “Merge branch add”是默认的提交日志
- 如果使用默认的提交日志,则直接输入 “:q”即可完成合并
- 如果要修改提交日志,则按 “i”进入 “插入模式”
- 修改黄色的字(提交日志)
- 按 “esc”退出“插入模式”
- 输入 “:wq”退出,即可完成合并
12.删除本地分支
git branch -d 分枝名称
查看所有本地分支
git branch
创建新分支
git branch 分支名
比如,创建一个叫做login的分支
git branch login
切换分支
git checkout 分支名
比如,切换到login分支
git checkout login
比如,切换到master分支
git checkout master
创建并直接切换分支
git checkout -b 分支名
3.远程仓库
码云:https://gitee.com/
github:https://github.com/
我们向码云或github网站推送代码的时候,最好使用SSH的方案,这个方案需要提前配置好秘钥。下面是具体的配置方法。
任何文件夹位置,空白处右键,选择右键菜单中的 “Git Bash Here”,执行下面的命令,可以生成SSH秘钥(包含一个公钥一个私钥)
ssh-keygen -t rsa -C "你的邮箱地址" # 比如 ssh-keygen -t rsa -C "tangfengpo@163.com" # 执行完这个命令之后,后面有一些询问,我们直接一路回车即可
注意,回车执行命令,然后继续回车,回车…直至生成完毕~
最后生成的秘钥在:
Windows: C:Users用户名.ssh mac: 你的用户名那个文件夹中。 按shift+Commend+. 可以显示隐藏文件,然后就可以看到 .ssh文件夹了
找到 .ssh/id_rsa.pub,用vscode打开,复制里面全部的内容,配置到远程仓库,做法如下:
- GitHub右上角的三角号
- Settings
- 左侧有 SSH and GPG keys
- 在显示的界面中,点击右上角的 New SSH key,然后完成添加公钥操作
- 码云的配置方式和Github一样。
- 码云
- 右上角的 “+” ,选择新建仓库
- 填写仓库名,选择公开
- 点击创建按钮,创建。
- github
- 右上角的 “+” ,选择 “New repository”
- 填写仓库名称
- 点击创建按钮,创建。
- 进入本地项目文件夹,右键 --> Git Bash Here,打开终端窗口。
- 远程仓库地址有两个(https、ssh地址),一定要选择ssh地址。
- 添加远程仓库地址(git remote add 远程仓库地址别名 完整的远程仓库SSH地址 )
- 首次推送代码到远程仓库(git push -u origin master)
只能把本地仓库的代码推送到远程仓库;不能把工作区的、暂存区的代码推到远程。
确保你的本地仓库有内容,别推送空的本地仓库。注意是本地仓库,不是工作区。
首次使用SSH,会出现如下画面,输入 “yes”,回车即可。后面就不会再有了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ecE8AVrl-1650809323613)(Git.assets/image-20200819170633759.png)]
再次及后续推送- 工作区编写代码
- 执行 add 命令,将代码添加到暂存区
- 执行 commit 命令,将代码提交到本地仓库。(因为只有本地仓库的代码才能推送到远程)
- 执行 git push 命令,将这次改动推送到远程仓库。
- 执行完“git remote add origin ssh地址”报错:fatal:remote origin already exists.
- 叫做 origin 的远程地址以及存在了。不能再使用这个名字了。
- 执行 git remote -v 查看所有的远程地址。
- 可以选择性的 删除 远程地址。执行 git remote remove 别名,比如 git remote remove origin
- 首次推送的时候,提示输入账号密码
- 因为添加远程地址的时候,填错了,填成了 https 地址了。应该换成 ssh 地址。
- 可以选择改过来,也可以使用https地址。下次做项目,再使用ssh地址也可以。
git remote add 那里,地址复制错了,能改吗?
# 查看所有可用的源(可用的远程地址) git remote -v # 删除一个源 git remote remove 远程仓库地址别名 # 然后重新添加新的地址 git remote add 远程仓库地址别名 SSH地址
我电脑上有两个本地项目(仓库),能推送到一个远程仓库吗?
没人这么干!!!!!!!!两个项目放一起,会出现混乱或者覆盖的呀!!!
推送总是不成功?
-
检查一下SSH秘钥配置好了吗
-
看看什么错误,直接把前因后果告诉老师吧~~~
-
实在不行,重新创建一个仓库试试,从头再来。
- 创建远程仓库 或 创建本地仓库之后推送到远程仓库
- 初始化一个项目,git init
- 添加初始的代码到暂存区 git add .
- 提交初始的代码到本地仓库 git commit -m "提交了初始的代码"
- 推送到远程仓库
- git remote add origin SSH地址
- git push -u origin master
- 邀请成员
- 开发(add / commit / pull / push)
- 编辑自己的代码
- 把修改后的代码,添加到暂存区 git add .
- 把修改后的代码,推送到本地仓库 git commit -m "xxx"
- 如果有人在你之前推送了,则推送之前需要先拉取,将拉取下来的代码和你的代码合并 git pull origin master
- 合并如果有冲突,需要解决冲突,别忘记提交一次
- 最后推送 git push origin master
- 同意邀请
- 克隆项目到本地(注意路径)
- 执行 git clone SSH地址 ,将项目克隆到本地。然后关闭黑窗口。
- 进入项目文件夹,重新 git Bash Here 打开黑窗口,这样可以保证路径正确。
- 开发(add / commit / pull / push)
- 编辑自己的代码
- 把修改后的代码,添加到暂存区 git add .
- 把修改后的代码,推送到本地仓库 git commit -m "xxx"
- 如果有人在你之前推送了,则推送之前需要先拉取,将拉取下来的代码和你的代码合并 git pull origin master
- 合并如果有冲突,需要解决冲突,别忘记提交一次
- 最后推送 git push origin master
git remote show 仓库别名 # 比如,查看一个叫做码云的远程仓库的分支 git remote show origin跟踪分支
跟踪分支就是把远程仓库的分支下载到本地
git checkout 远程分支名 # 比如有个远程分支,叫做user,把他下载到本地也叫做user git checkout userGit忽略
在项目中,创建 .gitignore 文件,它就是git的忽略文件,记录了哪些文件不被Git管理。
如果有的文件已经被Git管理了,而又想设置为忽略文件,则需要使用 git rm --cached 文件 将文件从仓库中移除才有效。
被成功忽略的文件,不会被添加到暂存区,不会被提交到本地仓库,不会被推送到远程仓库。这就是忽略的意思。
# 展示 .gitignore 的写法 # 忽略当前目录中的 test 文件夹 /test # 忽略任何目录中的 test 文件夹 test/ # 忽略任何目录中的 png 图片 *.png4.总结
-
能够掌握 Git 中基本命令的使用
- git init
- git add .
- git commit –m "提交消息"
- git status 和 git status -s
-
能够掌握 Git 分支的基本使用
-
git branch 查看分支
-
git checkout 分支名称
-
git checkout -b 新分支名称
-
git merge 分支
-
git push -u origin 新分支名称
-
-
能够配置 SSH 访问
**安装后配置自己账号信息 把自己写的功能合并到主分支(就是主题上面)每次写完就保存到本地仓库 **
基本命令如下:
1.查看自己是否安装
2.查看配置自己的自己邮箱
git config --global user.name “xxx”
git config --global user.email “xxx”
查看所有的全局配置项
git config --list --global
查看单个的配置项,比如查看用户名
git config user.name
3.项目开始 在码云创建一个仓库 ,添加远程仓库地址,推送代码到仓库,创建分支两个 login index 共合并到主分支两次 注意: 提交合并方式
基础操作:
clera
1. git init 项目初始化;
2. git add . 所有文件添加到暂存区;
学3. git commit -m "XXXX" 暂存区文件添加到本地仓库;gitco
学4. git status -s 查看所有文件状态;
5. git log/reflog 查看提交日历;
6. git reset --hard ID 版本切换;
分支操作:
1. git branch 查看分支(主分支要提交一次);
2. git branch XXX 创建分支(根据主分支创建);
学3. git checkout XXX 切换分支;
4. git checkout -b XXX 创建并切换分支;
5. 注意: 分支代码提交之后才能切换; 合并代码是站在主分支上,合并功能分支;
学6. git merge XXX 主分支合并功能分支;
7. git branch -d 分枝名称
当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支
远程仓库:
1. 介绍: 本地仓库提交; 远程仓库创建(开源仓库,不要选默认添加文件);
2. 介绍: https提交,ssh提交;ssh更安全,配置起来比较麻烦;
3. git remot add origin https/ssh地址
学4. git push -u origin master
5. git remote -v 查询变量中存储的地址
6. git remote rm origin 删除变量
多人协作开发:
1. git clone SSH/HTTPS地址 克隆仓库
2. git pull origin 分支名称 拉取远程仓库分支里面最新的代码(拉取)
3. git remote show origin 查看远程仓库分支
4. git checkout 远程分支 跟踪分支(主分支拉,跟踪分支拉取在切换)
5. .gitignore 这个文件,可以忽略文件和文件夹,脱离git的管理;
本着学习的态度,诸多不足希望评论纠正谢谢



