Git介绍
Git需要安装
Git是一个软件,作用是:
- 记录代码的变更(记录我们的开发进程)
- 实现多人协作(可以把多人的代码合并到一起)
基础使用
1.初始化项目
git init
2.建立本地仓库和远程仓库的连接
git remote add origin 远程仓库URL
3.将码云上的仓库pull到本地
git pull origin 分支名称
4.创建并切换分支,这里和远程仓库的分支要一致(选择指定推送的分支,使用git branch可以查看分支)
git checkout -b 分支名称
5.将文件加载到暂存区(如果add错了可以使用git rm --cached 文件名 删除添加的文件)
git add .
6.将文件提交到本地仓库(-m 为描述信息)
git commit -m “Initial commit”
7.将本地仓库推送到远程仓库
git push origin 分支名称
————————————————
版权声明:本文为CSDN博主「是浩不是昊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_57645299/article/details/124433880
下载安装
尽量自己去搜索,下载,安装
安装后,安装路径,绝对不能更改。
终端窗口介绍
无论windows系统,还是mac系统,都有终端窗口
- Mac系统,就叫做终端
- Windows系统,有cmd、powershell、Git shell(安装Git之后,就有了)
终端路径(非常重要)
- 终端路径,关乎到命令
- 做哪个项目,就在项目文件夹,空白处,鼠标右键,选择 Git Bash Here
- 如果发现终端中的路径,不是项目文件夹,关闭黑窗口,进入到项目文件夹,重新打开黑窗口
终端技巧(非常重要):
- clear 命令,用于清屏
- 按 ↑ 或 ↓ ,来找历史命令(找曾经写过的命令)
- 按 tab 键,可以补全命令(我们输入命令前几个字母,按 tab 键,可以补全命令)
使用前的必须配置
使用前必须配置用户名和邮箱
git config --global user.name '用户名'
git config --global user.email '邮箱'
# 查看是否配置成功
git config --global --list
执行命令后,如果看到了我们配置的用户名和邮箱,则表示正确
到公司,使用Git之前,必须配置用户名和邮箱。
用户名和邮箱,向项目经理要,公司必须提供给你。
个人使用的话,配置成码云的用户名和邮箱就行了。
Git的工作原理
基本命令
初始化
- 一个项目,只需要初始化一次。
- 如果你看到项目文件夹,有 .git 文件夹了,说明项目已经初始化过了,就无需再初始化了
- 注意初始化的路径,是否是你的项目 文件夹
- 项目和项目千万不要嵌套
git init
Mac 系统按
shift + Command + .
切换查看隐藏文件
添加命令
将工作区的改动,更新到暂存区
# 注意空格
git add .
提交命令
将暂存区的文件,提交到本地仓库,提交到本地仓库,才能形成一个版本。
git commit -m '说明文字'
查看日志
- 执行命令,查看提交记录
- 如果发现黑窗口显示不出所有内容,则可以按
↓
查看剩余记录 - 随时输入
q
退出
# 基本命令
git log
# 查看简略消息
git log --oneline
# 查看最近两次记录
git log -2
# 查看完整的记录(适用于回到历史版本【git reset --hard 版本号】之后,使用这个选项来查看完整的记录)
git log --reflog
# 选项可以组合使用
git log --oneline -2
在版本中穿梭
这里的命令非常多。
# 将代码整体 在历史中 穿梭
git reset --hard 版本号 (版本号使用前7位也可以)
# 指定文件回到某个版本
git checkout 版本号 文件名
查看状态
通过查看状态(未跟踪、已暂存、已修改、已提交),我们主要检查:是否有文件没有提交。
执行 git status 命令之后:
- 如果看到 ”nothing to commit,working tree clean”说明全部文件都提交过了。
- 如果看到有红色、或绿色的文件名,说明还有文件没有提交呢
因为如果有文件没有提交,则不允许切换分支、创建分支、拉取代码等等。
git status
# 如果结果是
$ git status
On branch master
nothing to commit, working tree clean
说明所有文件都提交了,此时,可以切换分支、创建分支、拉取代码等等。
分支
分支相关命令
非常重要,在当前分支修改了内容,一定要提交,然后才能切换分支、才能创建分支等等。
# 查看分支
git branch
# 查看分支(包括远程分支,学完远程仓库再看)
git branch -a
# 创建分支
git branch 分支名
# 切换分支
git checkout 分支名
# 创建并直接切换分支
git checkout -b 分支名
# 删除分支
git branch -d 分支名 (如果不让删除,可以使用 -D 强制删除)
# 合并分支
git merge 分支名 (把指定分支的代码,合并到当前分支)
合并分支
无需知道是什么模式的合并,硬着头皮合并就完事了。git merge 分支名
- 不报错,没有冲突提示,表示合并完成
- 出现一个弹框(下图),(英文输入法)输入 :q 按回车退出即可
- 如果提示 CONFLICT,表示有冲突,找到有冲突的文件解决冲突(去掉分割线,选择保留什么代码,保存文件),最后 git add . 和 git commit -m ‘xxx’ 即可完成合并
远程仓库
使用远程仓库的目的:
- 个人用,发布自己的项目
- 公司用,实现多人协作
提供远程仓库的网站:
- gitee.com (码云)(中文的)
- github.com (英文版)(全球最大的代码托管服务)
- gitlab (企业用)
- 自己搭建服务器
SSH秘钥配置
ssh-keygen -t ed25519 -C "手机号或邮箱"
回车4次,直至出现终端路径为止。表示ssh秘钥对生成完毕了
创建好的秘密对
- 在
C:\用户\你的用户名\.ssh
- Mac,打开访达,最上面的菜单>前往>个人(小房子图标),按
shift+Command+.
显示隐藏文件,就会看到 .ssh 文件夹了
找到公钥,配置到码云
- 进入 .ssh 文件夹,找到 pub 文件,vscode打开它,复制里面全部的内容
- 打开 http://gitee.com ,右上角的头像,设置,侧边栏ssh公钥,进入添加公钥
测试一下:
- 执行
ssh -T git@gitee.com
,在出现的画面中,输入yes
,然后回车 Are you sure you want to continue connecting (yes/no/[fingerprint])? **这里输入yes**
- 如果提示 hi,老汤…. 表示成功了
首次推送分支
- 创建远程仓库
- 点击gitee.com网站右上角的
+
,新建仓库 - 只填写仓库名称(其他的千万不要选)
- 点击创建
- 创建后,千万不要在网站的仓库中添加什么文件(比如 README)
- 点击gitee.com网站右上角的
- 添加远程仓库地址
- 为了明确向哪个远程仓库推送,必须添加这个仓库的地址
- 如果配置了ssh秘钥的话,则选择使用 SSH地址
- 使用
git remote add 远程仓库别名 仓库地址
添加远程仓库地址 - 使用
git remote -v
查看远程仓库地址 - 使用
git remote remove 远程仓库别名
来移除已添加的远程仓库地址
- 首次推送分支
- 使用
git push -u 远程仓库别名 分支名
(首次推送任何分支都需要加-u
) - 推送后,到远程仓库网页刷新一下,查看是否推送成功
- 使用
后续的推送
- 修改代码(注意,我们是在工作区修改的代码,工作区的代码不能推送)
- 执行
git add .
将代码更新到暂存区 - 执行
git commit -m 'xxxx'
将代码提交到本地仓库 - 执行
git push
或者git push 远程仓库别名 分支名
完成推送
如果把远程地址移除了,则再次加回来也是可以的。
使用https地址推送
- 使用https地址,首次推送需要使用账号密码
- 首次推送成功,账号密码就记录到自己的电脑中了,后续再推送就不用再输入账号和密码了
- 账号密码,记录到电脑的 控制面板 -> 凭据管理器 -> Windows凭据
- 至于推送的步骤,和使用SSH一样
非常重要:到公司,公司会给你分配用户名、密码、邮箱,如果项目经理没有给,则主动问一下
相关命令
# 查看远程地址(看一下你添加了哪个远程地址)
git remote -v
# 添加一个远程地址
git remote add 别名 仓库地址 (仓库地址使用HTTPS或SSH地址都可以)
# 移除一个远程地址
git remote remove 别名
# 首次推送(保证远程仓库是空的)
git push -u 别名 分支名 (首次推送任何一个分支,都这样做)
# 后续的推送(先改代码、add、commit)
git push
或
git push 别名 分支名
# 拉取命令
# 当本地分支不包括远程分支的某个版本的时候,需要拉取
# 拉取后,会自动和本地分支合并
# 合并之后,才允许推送
git pull
git pull 别名 分支名
# 克隆命令
# 当我需要把远程仓库完整的下载到自己的电脑中时需要克隆(我的电脑中开始什么都没有)
git clone 远程仓库地址 (克隆主分支)
git clone -b 分支名 远程仓库地址 (指定克隆某个分支)
小结
- 不能把两个项目,推送到一个远程仓库(绝对不行)
- 尽量不要在远程修改内容、不要在远程添加文件、不要在远程删除文件
多人协作
简化版本。
管理员
- 创建本地仓库并至少提交一次(把项目的初始模板、初始代码提交上去)
- 初始化一个项目,git init
- 添加初始的代码到暂存区 git add .
- 提交初始的代码到本地仓库 git commit -m “提交了初始的代码”
- 推送到远程仓库
- git remote add origin 仓库地址
- git push -u origin master
- 邀请成员
- 码云 -> 进入远程仓库 -> 管理 -> 仓库成员管理 -> 邀请成员
- 可以使用链接邀请,可以使用具体的用户名邀请
成员
- 同意邀请
- 克隆项目到本地(注意路径)
- 执行 git clone 仓库地址 ,将项目克隆到本地。然后关闭黑窗口。
- 进入项目文件夹,重新 git Bash Here 打开黑窗口,这样可以保证路径正确。
所有人
- 创建分支,切换到自己的分支进行开发
- git branch 分支名
- git checkout 分支名
- 编写代码,然后 add / commit / add / commit / ……
- 推送自己的分支
- git push –u 仓库别名 分支名
合并所有分支
- 最后,将所有人的分支合并到一起。相当于,将所有人的代码合并到一起。从而实现多人协作。
- 管理员或者项目经理,或者某个开发人员都可以合并分支。
- 执行 git pull 命令,以便在本地能够查看到所有的远程分支。
- 依次 执行 git checkout 远程分支名 将所有分支检出(下载)到本地
- 切换到主分支或开发分支 git checkout master
- 依次合并 其他分支 git mrege 其他分支名
- 合并后,将master分支推送
- 其他成员 git pull origin master 拉取更新
图示
忽略文件
在项目根目录,创建 .gitignore
,里面记录,哪些文件需要被忽略。
忽略文件的写法:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
如果有些文件,已经被提交了,再设置忽略就不好使了
解决办法是:把他们从暂存区移除,然后在重新的 add、commit、push
移除的命令是 git rm -r --cached 文件名
Git图像界面
图像界面有很多:https://git-scm.com/downloads/guis
下面介绍vscode中的Git插件
使用vscode内置的Git插件,vscode只能打开一个项目。
详情,见视频~~~
End