一、为什么需要代码管理¶
1.1 为什么引入代码管理¶
写代码时我们一般不可能一天写完,大部分都是分批来写的,这就导致我们无法准备记住每天写了哪些代码?这时就需要对代码进行管理。另外,代码团队写代码时,每个人都会提交代码然后进行合并,这同样需要我们对代码进行管理。
1.2 用什么管理代码¶
针对批量的代码,我们一般使用代码仓库对代码进行存放并进行管理。而代码仓库的功能大概有以下几点:
- 版本控制:追踪代码的变更记录,查看代码修改内容以及版本回滚
- 分支管理:可以让我们同时处理多个任务,同时不会影响稳定的分支
- 团队协作:支持多人开发:多人协同开发,且互不影响
- 代码审查、知识Wiki等
二、代码仓库介绍¶
主流代码仓库有GitHub、gitee、GitLab。
2.1 GitHub¶
GitHub 是全球最大的代码托管平台,拥有广泛的用户和开源项目。它提供了一个简单易用的用户界面,使得代码的分享、协作和管理变得非常方便。GitHub不仅仅是一个代码托管平台,还提供了许多其他功能,如问题跟踪、代码审查、持续集成等。GitHub还支持基于Git的工作流程,例如分支、合并和拉取请求,这些功能使得团队协作更加高效。
2.2 Gitee¶
Gitee 是中国的一个类似于GitHub的代码托管平台,也是全球最大的代码托管平台之一。它提供了类似GitHub的功能,包括代码托管、协作和问题跟踪等。Gitee特别受国内开发者的欢迎,因为它提供了更快速的访问速度和更好的中文支持。与GitHub类似,Gitee也支持基于Git的工作流程,使得多人协作开发更加方便。
2.3 GitLab¶
GitLab 是一个开源的代码托管平台,类似于GitHub和Gitee,但提供了更多的功能和灵活性。GitLab不仅提供了代码托管和版本控制的功能,还包括持续集成、自动化测试、容器注册表等。与GitHub和Gitee不同的是,GitLab可以在自己的服务器上进行部署,这使得一些组织或企业可以在私有网络内搭建自己的GitLab实例,以更好地保护代码和数据的安全性。GitLab也提供了社区版和企业版两个版本供用户选择。
三、Git客户端工具安装及配置¶
3.1 Git客户端工具安装¶
登录Git官网,点击【下载】,一直【Next】即可进行安装。

3.2 Git配置¶
1.配置全局用户名和邮箱
右键鼠标,点击【Git Bash Here】打开命令行视图,配置全局用户名和邮箱
示例命令:
#如果没有配置过,则执行下面命令进行配置
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"
具体命令:
$ git config --global user.name "zq"
$ git config --global user.email "123456@qq.com"

2.查看配置
右键鼠标,点击【Git Bash Here】打开命令行视图,查看配置
$ git config user.name
$ git config user.email

3.生成SSH密钥
右键鼠标,点击【Git Bash Here】打开命令行视图,生成SSH密钥
示例命令:
$ ssh-keygen.exe -t rsa -C "你的邮箱"
具体命令:
$ ssh-keygen.exe -t rsa -C "123456@qq.com"

查看公钥
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCWgteqwoM0uksX2AcbviLkdeYR/YgKidICLB7sII/dpc+AZ02OuJzT829Hm0bJjvvV6iXH83qZTEtVXC9plU+0kwtarweyPfyuVx2XnkR6tuTFalRKkkLkPZqZjnRfJBVFL4lcl5IDwLgmXCAozpTRS0TllcZfG/TWIGoJuyUDxmEZ/iq4VstshUa6unCUSSTIJ2+lRwn4TVPVoFFuk203D/V6r071wljFg0jdjAWBW2XeoT+AWWJoyxtPYvnOozjHJ4JqeJ5FUFpTBT5unIh4kzC8dMoumFyLsNMYU1h9F85eyHutlWYK2z88SyqKcJZSIusVYzej93xcgY+ewjHbFbNO54Og1mG0fAR+lqSwoQR42YwyBFWmFKW/MEBScLoJJIye5q6va35kCaX2ET36cL/Fxugchh9DRGccCzgFlbMsqYHQKMq/7MRQEjshXe5I6mkbOxhxWuLYvDgfUxxmO3JuKezhpGuEoc2h3+6/dXiwZNakKHJI4HmGfl1Cq+E= 123456@qq.com

上传公钥到仓库,这里以gitee为例

四、Git仓库管理¶
4.1 新建仓库¶
1、点击【+】-【新建仓库】

2、输入仓库名称git_study后,点击【创建】

3、点击【创建】后,我们可以复制SSH链接,方便后面操作

4.2 本地无仓库上传代码¶
假如我们在本地上无仓库,想拉取远程仓库的代码进行编写,最后再上传代码到远程仓库。
1.把仓库克隆到本地
$ git clone git@gitee.com:jeckjohn/git_study.git
Cloning into 'git_study'...
warning: You appear to have cloned an empty repository.
2.新建一个文件并进行上传
$ cd git_study/
$ vim README.md
test

3.添加缓存区并上传代码
$ git add .
$ git commit -am "test"
$ git push origin master
4.结果验证,观察到新建的文件已成功上传

4.3 本地有仓库上传代码¶
假如我们在Gitee上创建了代码仓库git_study1,并且本地上已经创建好名为git_study1的文件夹,编写好想上传代码到远程仓库。

这里我们先在本地上编写一个文件模拟演示环境:
$ cd git_study1/
$ vim README.md
# 进行测试

1.初始化本地仓库
$ git init
2.添加到暂存区
$ git add .
3.将名为"origin"的远程仓库添加到你的本地Git仓库中
$ git remote add origin git@gitee.com:jeckjohn/git_study1.git
4.将暂存区中的文件变更保存为一个新的提交
$ git commit -am "test"
5.提交代码
$ git push origin master
6.结果验证

五、Git命令详解¶
1.克隆远程已有的仓库到本地
$ git clone 远程仓库地址
2.更新本地代码(拉取远程仓库中的新代码到本地)
$ git pull <shortname> <remote_branch>:<local_branch>
<shortname>是远程仓库的简称或名称,如origin<remote_branch>是远程仓库的分支名<local_branch>是你本地仓库中的分支名
3.添加所有修改的文件,但不包含删除文件到暂存区
$ git add .
4.添加所有修改的文件及删除的文件到暂存区
$ git add -A
5.添加单个文件到暂存区
$ git add file1
6.添加多个文件到暂存区
$ git add file1 file2 file3
7.把文件从暂存区提交到本地仓库
$ git commit -am "提交信息"
- -a:类似于git add,但是不包含新添加的文件
- -m:注释内容
8.把本地仓库的代码提交到远程仓库
$ git push <shortname> <remote_branch>
<shortname>是远程仓库的简称或名称,如origin<remote_branch>是远程仓库的分支名
六、Git分支管理¶
1.本地仓库创建分支(不常用)
$ git branch NEW_BRANCH_NAME
注意:创建的新分支会复制之前分支所有的代码
2.本地仓库切换分支
$ git checkout BRANCH_NAME
3.本地仓库创建分支并切换到新分支(常用)
$ git checkout -b NEW_BRANCH_NAME
注意:创建的新分支会复制之前分支所有的代码
4.查看本地仓库的所有分支
$ git branch

注意:当前所在分支前面会带*
5.查看远程仓库所有分支
$ git branch -r
6.查看远程仓库和本地仓库所有分支
$ git branch -a

注意:远程仓库分支为红色,本地仓库当前所在分支前面会带*
7.删除本地仓库分支
$ git branch -d BRANCH_NAME
注意:如果当前所在分支就是要删除的分支,需要切换分支再删除
8.强制删除本地仓库分支
$ git branch -D BRANCH_NAME
注意:如果当前所在分支就是要删除的分支,需要切换分支再删除
9.删除远程仓库分支
$ git push origin --delete BRANCH_NAME
10.本地仓库合并分支(一般在master分支上操作)
$ git merage BRANCH_NAME
注意:需要提前拉取master分支的最新代码,再进行合并
11.同步远程仓库分支到本地仓库
$ git fetch -p
-p或--prune选项表示在拉取更新的同时,删除本地仓库中已经不存在于远程仓库的引用。这样可以保持你的本地仓库与远程仓库的引用一致
12.同步本地仓库分支到远程仓库
$ git push origin BRANCH_NAME
七、GIt版本管理¶
1.查看代码提交记录
$ git log
2.查看当前环境文件变更状态
$ git status
如果存在修改,结果会显示如下:

如果不存在修改,结果会显示如下:

3.查看修改了什么内容
$ git diff FILE_NAME
#其中-代表删除的行
#其中+代表增加的行

4.撤销单个文件的修改
$ git checkout -- FILE_NAME
5.撤销所有文件的修改(谨慎操作)
$ git reset --hard
6.回滚到指定的版本(谨慎操作)
(1)查看要回滚的commit
$ git log

(2)回滚到指定的版本
$ git reset --hard 6e1a2a518d320564bd5876694e193ee913efaa73
7.把回滚内容强制推送到远程仓库(谨慎操作)
$ git push origin master --force