前言:现在版本控制使用Git居多,如果你还不会的话,点进来,教你如何配置Git。
目录
一、Git介绍
二、Git安装配置
2.1 安装过程详解
2.2 检查安装是否成功
三、提交和更新代码到Git仓库
3.1 以Gitee为例
3.2 配置pycharm
💫3.2.1、选择Git安装路径
💫3.2.2、下载gitee插件
💫3.3.3、在pycharm中登录Gitee账号
3.3 上传本地项目到gitee仓库
💫3.3.2、选择需要提交的代码
💫3.3.3、在Gitee查看项目
3.4、关于脚本颜色的说明
3.5、创建新的脚本文件
3.6、Git的三个按钮:下载、提交、上传
💫3.6.1、Update 拉取远程仓库最新代码
💫3.6.2、Commit 保存在本地仓库
💫3.6.3、查看历史提交版本
💫3.6.4、Push 上传到远程仓库
四、克隆Git仓库项目代码
4.1、获取项目链接
4.2、克隆项目代码
五、分支操作
5.1、创建分支
5.2、切换分支
5.3、合并分支
💫5.3.1、代码不冲突
💫5.3.2、代码有冲突
5.4、回溯之前的版本
六、生成版本号(tag标签)
6.1、选择版本
6.2、创建标签
6.3、推送标签到远程仓库
6.4、在远程仓库查看标签
七、SSH公钥设置
7.1、HTTPS与SSH区别
7.2、创建公钥
7.3、添加公钥
Git和SVN类似,也是一个配置管理工具,而他们的区别之处在于:
- SVN是集中管理
- 所有存档要保存在一台服务器上。
- 这里可能存在一个单点故障的问题,即一旦服务器出问题,所有人都不能读档。
- Git是分布式管理
- 存档可以保存在本地
- 也可以保存在远程服务器
- GitHub:全球最大同性交友平台,但是服务器在国外,国内访问不稳定。
- Gitee:是国内的一个平台,访问比较稳定。但是要么开源,要么交钱。
- Gitlab:公司自己搭一个服务器
💥1、百度搜索git,基本跳出来的第一个就是官网Git - Downloads (git-scm.com)。
💥2、以Windows为例,点击Download for Windows,如下图:
💥3、点击Click here to download,即可下载最新版本Git-2.35.1.2-64-bit.exe,如下图:
💥4、双击运行exe文件,许可协议,直接点击[next]到第二步。
💥5、选择安装目录,默认即可,点击[next]到第三步。
💥6、选择安装组件,按需勾选,点击[next]到第四步。
💥7、选择开始菜单文件夹,默认即可,下面选项不要勾,点击[next]到第五步。
💥8、选择Git默认编辑器,默认是vim编辑器,vim是纯命令行,操作有难度,我这里是改成了Notepad++,需要提前提前下载好才能点击next,同时在环境变量->系统变量->Path->编辑添加Notepad++的安装地址,如:C:Program Files otepad++,这样才能在Git Bash里面直接调用Notepad++,点击[next]到第六步。
💥9、初始化项目(仓库)的主干名字,第一种是让Git自己选择,默认是master,第二种是我们自行决定,默认是main。我这里默认第一种,点击[next]到第七步。
💥10、选择path环境变量设置,默认第二种,点击[next]到第八步。
💥11、选择SSH可执行文件,默认第一个,点击[next]到第九步。
💥12、选择HTTPS后端传输,默认第一个,点击[next]到第十步。
💥13、配置行尾符合转换,默认第一个,点击[next]到第十一步。
💥14、配置终端模拟器以与Git Bash一起使用,默认选择第一种,因为MinTTY功能比cmd多,点击[next]到第十二步。
💥15、选择默认的‘git pull’行为,默认第一项即可,点击[next]到第十三步。
💥16、选择一个凭证帮助程序,默认即可,点击[next]到第十四步。
💥17、配置额外的选项,默认选择文件系统缓存,点击[next]到第十五步。
💥18、配置实验性选项,默认都不勾选,点击Install。
💥19、最后安装成功界面如下,点击Finnish即可。
💥20、最后看一眼Git Bash界面,平时用的会比较多,如下:
环境变量在我们安装过程中是已经配置好的,所以打开cmd窗口,输入git --version检查,能显示版本,说明安装成功。
否则就需要检查环境变量是否配置成功,并需要手动配置,将安装文件的cmd文件路径C:Program FilesGitcmd添加到path中。
百度搜索Gitee(中文名:码云),注册一个账号并登录,在登录之后,去认证一下邮箱。
Note:
1、然后随便创建一个库,不需要配置什么,就直接创建即可,否则在pycharm中第一次上传代码时会卡界面。
2、打开之前安装的git bash窗口输入以下命令用来创建Git与Gitee的连接:
git config --global user.name "Gitee中的用户名,比如tom-gitee" git config --global user.email "xxxxx@qq.com"
💫3.2.1、选择Git安装路径
打开pycharm,点击File-->Settings-->Version Control-->Git-->选择Git的安装路径(如果之前是默认路径的话就是C:Program FilesGitcmdgit.exe),然后点击Apply应用,点击OK关闭Settings界面
💫3.2.2、下载gitee插件
点击File-->Settings-->Plugins-->搜索并安装gitee-->安装好后重启pycharm。
Note:对于GitHub和Gitlab是不用安装插件的,可以直接使用。Gitee的话是因为它是国内的,pycharm没有集成它,所以需要安装插件。
💫3.3.3、在pycharm中登录Gitee账号
第一种登录方法:点击File-->Settings-->Version Control-->Gitee-->点击+号-->Login via Gitee,输入我们之前在Gitee中注册的用户名和密码。
Note:比较依赖网速,建议连一个比较好的网络再去登录,比如热点,如果登录失败,多尝试几次。
第二种登录方法:可以在菜单栏中点击VCS-->Share Project on Gitee, 同样会提示你登录Gitee,其实和上面差不多。
Note:旧版本的pycharm的话Share Project on Gitee可能会在VCS下的import into里,反正如果找不到的话都点开看一下吧。
💫3.3.1、菜单栏中点击VCS-->Share Project on Gitee
如果不需要改什么就直接点击Share。
Repository name:仓库名,一般默认是项目名。
Remote:远程仓库的别名,默认是origin。
💫3.3.2、选择需要提交的代码
勾选我们想要提交的代码,点击Add即可,在pycharm右下角会出现上传进度条,在上传成功后,也会弹出提示框,点击弹出框上的仓库名,会直接打开到Gitee页面上我们刚刚提交的项目中,如下图:
Note: 其中.idea可不用提交,它是pycharm自带的,对于其他人来说没有意义。
💫3.3.3、在Gitee查看项目
在上传成功之后,前往Gitee,在上面菜单条点击“我的”,可以看到我们刚刚提交的项目,点击它,就能看到我们刚刚提交的所有内容了,如下图:
- 如果是已经上传了最新的代码,那文件名就是黑色
- 修改已经上传的代码,文件名会变成蓝色
- 没有上传到gitee的文件名是红色
- 新创建的文件并已添加到缓存区的,文件名是绿色
如图,四个颜色很鲜明。
当在项目中创建一个新的脚本文件时,该文件会被自动检测,提示你是否需要添加到Git的缓存区,点击Add按钮,就会将其添加到Git的缓存区了。这里我们可以勾选"Don't ask again",这样以后就会直接自动添加到缓存区了。
- 第一个按钮:Update Project 下载
- 第二个按钮:Commit to master 提交到本地仓库,即保存在本地
- 第三个按钮:Push Commits to [Gitee上的项目名] 上传到Gitee
💫3.6.1、Update 拉取远程仓库最新代码
每天在我们开始工作之前,或者提交代码到远程仓库前都应该先拉取远程仓库的最新代码,避免产生版本冲突。
点击Update按钮,会有两个选项,都是可以将远程仓库的最新代码拉取下来。对于新手来说,选第一项即可。
- Merge the incoming changes into the current branch,
- 字面意思Merge:合并分支
- 好处:Merge 是非常好的,因为它是非破坏性的操作。现有的分支不会以任何方式改变。与rebase(将在下面讨论)有很大不同。
- 坏处:如果main分支是非常活跃的(即更新频繁),这可能会污染你的分支, 因为提交的commit历史很多。虽然使用高级的git log选项可以缓解这个问题,但它会让其他开发人员难以理解项目的历史。
- Rebase the current branch on top of the incoming changes
- Rebase这个命令这个命令会始终把你最新的修改放到最前头,比如你对主branch进行rebase以后, 你的所有修改就会在主branch当前所有的修改之前。
- 好处:该命令会合并分支的commit历史,以达到简化历史信息的作用。
- 坏处:使用rebase命令会合并其他分支的历史进入到feature分支,失去了合并前的上下文信息,可能会带来潜在的灾难,因为你不知道合并前,main分支的修改到底做了什么,因为一些信息被合并了(缩减了提交历史)
💫3.6.2、Commit 保存在本地仓库
- 点击commit按钮,会在Changes中自动勾选刚刚修改过的以及新添加的脚本文件,而Unversioned Files是之前我们没有上传的文件就不会被勾选,如果你想上传需要我们主动勾选。
- 如果双击Changes下的文件,会打开原文件以及修改后的文件进行对比,修改过的地方都会有颜色标注出来的,所以提交之前可以再次扫一遍以防有什么错误。
- 在下面的输入框中写入本次提交的注释,这个是必须要写的,这样别人再看的时候,才会知道你做了什么。
- 然后点击下面的Commit按钮就在本地完成了提交。
💫3.6.3、查看历史提交版本
点击左下角的Git-->Log,可以查看到历史提交的版本,主要查看的就是我们添加的注释,所以说注释很重要。
💫3.6.4、Push 上传到远程仓库
当我们已经在本地提交了我们的代码之后,我们就可以点击push按钮来上传之前本地的代码到远程仓库,如下图:左边选择我们保存在本地的版本,然后点击下面的push按钮即上传成功。
去Gitee刷新我们的仓库就能看到更新上去的内容了。
当我们想要分享我们Gitee上的项目给别人时,该如何做呢?看下图:
点击进入Gitee上的项目中-->克隆/下载-->HTTPS和SSH皆可,点击复制,就可以得到我们项目的链接了。
点击Git-->Clone-->在URL中输入获取到的仓库链接-->选择要存放的文件地址-->点击Clone,等待进度条结束,就完成了项目代码的克隆。
1、当我们写代码时,会有一个master主分支,主分支只提交没有问题的代码。
2、我们写代码的话是不会直接在主分支写的,或者当主分支有bug时,会创建一个专门去写代码或者专门去解bug的分支。
3、一般公司里改bug的分支叫hot-fix
创建过程:点击pycharm右下角master-->New Branch-->起一个分支名字,比如hot-fix-->点击Create
勾选“Checkout branch” 就会自动切到创建的分支中,我们可以发现右下角的分支名字已经变成了hot-fix分支了。
当我们处于hot-fix分支下,但是想切回master分支的时候:点击右下角hot-fix-->点击master分支-->点击Checkout,即可成功切回到master分支了。
💫5.3.1、代码不冲突
当主分支和分支代码没有冲突的时候,可以直接合并。
💡比如我们在hot-fix分支下,在demo.py中修改了一个代码,commit时要记得加上注释,如下图:
如果当你真正修好了这个bug,你就可以把你的分支合并到主分支上。
💡但是当你在修bug的同时,别人可能也操作了主分支。举个例子,切到master分支下,我对B aiduTest.py这个文件做了一些修改,并commit了这个版本 (这个时候我们处于master分支,去检查demo.py文件,里面是没有内容的,因为我们之前的修改是处于hot-fix分支)
💡查看Git log可以很清楚的看到出现了两个分支,一个分支是主版本被另一个同事修改了,一个分支是我们去修改了一个bug。
💡现在我们想把修改过bug的代码合并到主分支中。做法:先把分支切回到master主分支,然后点击右下角master-->hot-fix-->Merge Selected into Current,就能将我们的分支合并到主分支了。这里的话是因为代码没有冲突,所以直接合并了,不需要手动解决冲突。
查看log,可以发现hot-fix分支已经被合并到主分支了。
💫5.3.2、代码有冲突
当合并时检测到主分支代码和分支代码不一样的时候,需要手动合并。举例如下:
💡切回到hot-fix分支,在demo.py中修改代码并提交,如图:
💡再切回到master分支,同样对demo.py文件修改代码,并提交,如图:
💡查看log,存在了两个分支,一个master,一个hot-fix。
💡保持在master分支下,点击点击右下角master-->hot-fix-->Merge Selected into Current,这时候就会发现由于主分支代码和hot-fix分支代码都被修改过了,就会存在冲突,会提示你去解决这个冲突。
💡你可以选择Accept yours,那hot-fix分支的代码就不要了,选择Accept Theirs,那master分支的代码就不要了。当然这不会影响到另一个同事那边的代码,只是合并的时候没有采用他的代码。
我们也可以选择Merge选项,这时候就会展现master分支的修改,原始代码,hot-fix分支的修改。
💡点击两边的按钮可以把两边的代码合并到中间的原始代码上,如果觉得合并后代码没什么问题就可以点击Apply应用,当然如果有问题,也是可以选择接受左边的或者右边的代码。
💡查看log,分支已被合并
当我们提交了很多的版本之后,想要查看之前的版本时,同样是在log中选择想要查看的版本,然后右键点击checkout,即可切到之前的版本了。
通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。
选择想要添加标签的版本,右键点击New Tag。
输入标签名,即版本号,点击OK。
点击Push,勾选下面的Push tags,即可将标签推送到远程仓库。
在远程仓库中查看标签,点击下图中的master,就能看到标签选项了。
在gitee网站上点击个人头像-->设置-->SSH公钥,可以看到设置SSH公钥的页面
点击“怎样生成公钥”,可以看到生成命令,如下
- HTTPS (pull和push的时候需要密码)
- SSH(不需要密码,但是需要创建公钥)
创建SSH公钥的目的:
使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址)
⚡️1、在桌面右键选择Git Bash。
⚡️2、在Git bash 窗口输入命令:ssh-keygen -t rsa
Note:-t 后面是写加密协议,rsa也是一种比较常用的加密协议,这里我们采用rsa来创建 -C 邮箱可以省略
⚡️3、按照提示完成三次回车,这时默认会在C:Users用户名.ssh 生成一个.ssh文件夹
⚡️4、进入.ssh文件可以看到生成的rsa文件,.pub文件就是公钥。
⚡️1、右键用记事本打开id_rsa.pub,复制其中的所有代码(开头的ssh-rsa,也是要的,不要漏掉 )
⚡️2、将其粘贴到gitee网站上的SSH公钥中,标题不需要我们取,在代码粘贴进入之后会自动识别机器名。
⚡️3、点击确定,输入密码验证身份,就成功添加了公钥了。
⚡️4、之后,当我们share项目的时候就可以使用SSH链接去share了。