如何使用git进行代码管理

举报
betterfate 发表于 2022/04/06 18:34:16 2022/04/06
【摘要】 前言:现在版本控制使用Git居多,如果你还不会的话,点进来,教你如何配置Git。一、Git介绍Git和SVN类似,也是一个配置管理工具,而他们的区别之处在于:SVN是集中管理所有存档要保存在一台服务器上。这里可能存在一个单点故障的问题,即一旦服务器出问题,所有人都不能读档。Git是分布式管理存档可以保存在本地也可以保存在远程服务器GitHub:全球最大同性交友平台,但是服务器在国外,国内访问...

前言:现在版本控制使用Git居多,如果你还不会的话,点进来,教你如何配置Git。

一、Git介绍

Git和SVN类似,也是一个配置管理工具,而他们的区别之处在于:

  • SVN是集中管理
    1. 所有存档要保存在一台服务器上。
    2. 这里可能存在一个单点故障的问题,即一旦服务器出问题,所有人都不能读档。
  • Git是分布式管理
    1. 存档可以保存在本地
    2. 也可以保存在远程服务器
      1. GitHub:全球最大同性交友平台,但是服务器在国外,国内访问不稳定。
      2. Gitee:是国内的一个平台,访问比较稳定。但是要么开源,要么交钱。
      3. Gitlab:公司自己搭一个服务器

二、Git安装配置

2.1 安装过程详解

💥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\notepad++,这样才能在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界面,平时用的会比较多,如下:

2.2 检查安装是否成功

环境变量在我们安装过程中是已经配置好的,所以打开cmd窗口,输入git --version检查,能显示版本,说明安装成功。

否则就需要检查环境变量是否配置成功,并需要手动配置,将安装文件的cmd文件路径C:\Program Files\Git\cmd添加到path中。

三、提交和更新代码到Git仓库

3.1 以Gitee为例

百度搜索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 配置pycharm

💫3.2.1、选择Git安装路径

打开pycharm,点击File-->Settings-->Version Control-->Git-->选择Git的安装路径(如果之前是默认路径的话就是C:\Program Files\Git\cmd\git.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 上传本地项目到gitee仓库

💫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,在上面菜单条点击“我的”,可以看到我们刚刚提交的项目,点击它,就能看到我们刚刚提交的所有内容了,如下图:

3.4、关于脚本颜色的说明

  • 如果是已经上传了最新的代码,那文件名就是黑色
  • 修改已经上传的代码,文件名会变成蓝色
  • 没有上传到gitee的文件名是红色
  • 新创建的文件并已添加到缓存区的,文件名是绿色

如图,四个颜色很鲜明。

3.5、创建新的脚本文件

当在项目中创建一个新的脚本文件时,该文件会被自动检测,提示你是否需要添加到Git的缓存区,点击Add按钮,就会将其添加到Git的缓存区了。这里我们可以勾选"Don't ask again",这样以后就会直接自动添加到缓存区了。

3.6、Git的三个按钮:下载、提交、上传

  • 第一个按钮: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刷新我们的仓库就能看到更新上去的内容了。

四、克隆Git仓库项目代码

4.1、获取项目链接

当我们想要分享我们Gitee上的项目给别人时,该如何做呢?看下图:

点击进入Gitee上的项目中-->克隆/下载-->HTTPS和SSH皆可,点击复制,就可以得到我们项目的链接了。

4.2、克隆项目代码

点击Git-->Clone-->在URL中输入获取到的仓库链接-->选择要存放的文件地址-->点击Clone,等待进度条结束,就完成了项目代码的克隆。

五、分支操作

5.1、创建分支

1、当我们写代码时,会有一个master主分支,主分支只提交没有问题的代码。

2、我们写代码的话是不会直接在主分支写的,或者当主分支有bug时,会创建一个专门去写代码或者专门去解bug的分支。

3、一般公司里改bug的分支叫hot-fix

创建过程:点击pycharm右下角master-->New Branch-->起一个分支名字,比如hot-fix-->点击Create

勾选“Checkout branch” 就会自动切到创建的分支中,我们可以发现右下角的分支名字已经变成了hot-fix分支了。

5.2、切换分支

当我们处于hot-fix分支下,但是想切回master分支的时候:点击右下角hot-fix-->点击master分支-->点击Checkout,即可成功切回到master分支了。

5.3、合并分支

💫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,分支已被合并

5.4、回溯之前的版本

当我们提交了很多的版本之后,想要查看之前的版本时,同样是在log中选择想要查看的版本,然后右键点击checkout,即可切到之前的版本了。

六、生成版本号(tag标签)

通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。

6.1、选择版本

选择想要添加标签的版本,右键点击New Tag。

6.2、创建标签

输入标签名,即版本号,点击OK。

6.3、推送标签到远程仓库

点击Push,勾选下面的Push tags,即可将标签推送到远程仓库。

6.4、在远程仓库查看标签

在远程仓库中查看标签,点击下图中的master,就能看到标签选项了。

七、SSH公钥设置

在gitee网站上点击个人头像-->设置-->SSH公钥,可以看到设置SSH公钥的页面

点击“怎样生成公钥”,可以看到生成命令,如下

7.1、HTTPS与SSH区别

  • HTTPS (pull和push的时候需要密码)
  • SSH(不需要密码,但是需要创建公钥)

创建SSH公钥的目的: 使用SSH公钥可以让你在你的电脑和码云通讯的时候使用安全连接(git的remote要使用SSH地址)

7.2、创建公钥

⚡️1、在桌面右键选择Git Bash。

⚡️2、在Git bash 窗口输入命令:ssh-keygen -t rsa

Note:-t 后面是写加密协议,rsa也是一种比较常用的加密协议,这里我们采用rsa来创建 -C 邮箱可以省略

⚡️3、按照提示完成三次回车,这时默认会在C:\Users\用户名\.ssh 生成一个.ssh文件夹

⚡️4、进入.ssh文件可以看到生成的rsa文件,.pub文件就是公钥。

7.3、添加公钥

⚡️1、右键用记事本打开id_rsa.pub,复制其中的所有代码(开头的ssh-rsa,也是要的,不要漏掉 )

⚡️2、将其粘贴到gitee网站上的SSH公钥中,标题不需要我们取,在代码粘贴进入之后会自动识别机器名。

⚡️3、点击确定,输入密码验证身份,就成功添加了公钥了。

⚡️4、之后,当我们share项目的时候就可以使用SSH链接去share了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。