版本管理的倚天剑 --- git

简介: 前言:要想成为武林高手,除了要身怀绝技,还需要神兵利器相配。git绝对称得上是版本管理工具中的倚天剑。正所谓好马配好鞍,相信用上git的你一定能称霸码林,独步天下!一、git简介:git是一个分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

前言:

要想成为武林高手,除了要身怀绝技,还需要神兵利器相配。git绝对称得上是版本管理工具中的倚天剑。正所谓好马配好鞍,相信用上git的你一定能称霸码林,独步天下!

一、git简介:

git是一个分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。每个人都有一个完整的版本库,对任何文件的修改提交操作都是针对本地版本库,所以无需联网,速度很快。但是多人协作如何进行呢?很简单,你只需要把你的修改推送给对方就可以了。但是这样互相推来推去很麻烦,所以我们需要一个中央服务器来中转一下,本质上它和你的本地版本库没有任何区别。GitHub和码云都是这样的中央服务器,码云就相当于国产的GitHub。

二、git的安装:

1、下载:进入git官网下载地址,选择download,依据自己的操作系统选择下载。

2、安装:下载好了安装文件后,双击,然后选择安装路径,一路next即可。

3、配置:在cmd命令行窗口或git bash界面输入以下命令:

git config --global user.name "用户名"
git config --global user.email "邮箱"

注意:用这两个命令设置用户名和邮箱,不要用中文!

输入:
git config --list

就可以查看到自己刚才输入的用户名和邮箱。

三、git的使用:

1、git原理:
git主要就是3棵树:
一个是工作区 ------>就是你的project;
一个是暂存区 ------>暂时存储本地的修改;
一个是git仓库 ------>保存修改后的内容。

2、git工作流程:
在工作目录添加修改文件 ---> 将需要进行版本管理的文件放入暂存区 ---> 将暂存区文件提交到git仓库。

3、初始化:在你需要进行版本管理的项目的根目录下右键,git bash here ,执行如下命令:
git init

在该项目目录下就会生成一个 .git 隐藏文件夹。


img_e9d43f82c2cc9ad5855d104c7fe574da.png
image.png

4、查看状态:
比如现在修改了testproject,新增了一个index.txt文件,那么执行
git status
就可以看到这个文件。

img_97d95872177dd01368ab7c3f302a22c7.png
image.png

5、将修改的文件加到暂存区:
git add index.txt

如果修改文件有很多,就执行
git add .
这就表示把当前目录所有的修改加到暂存区。
再次执行 git status就可以看到add成功了。

6、提交到git仓库:
git commit -m "新建了index.txt"

-m后面的是注释说明。

img_5ddf1d73ed4f98d924f2793faf630017.png
image.png

再查看status,就会说没有需要提交的了。

7、删除仓库的文件:
比如我又提交了一个readme.txt,然后又想删掉:
git rm readme.txt
git commit -m "删除了readme.txt"

四、码云的使用:

上面介绍的增删改都是基于本地仓库的,一个大型项目需要团队合作的话,就需要使用GitHub或者码云了,它们就是用来托管代码的,你可以把你的修改推送到上面,别人从上面就能获取到你修改后的代码。接下来介绍码云的使用。

1、注册码云:
进入码云官网按照提示注册即可。

2、新建空项目:

img_91b9b2b17c9180eb9825498f629337ed.png
image.png

然后填写相关信息点击创建即可。如果项目不是空的点击管理,清空即可。

3、把本地项目推到码云:
复制码云上项目的地址:

img_1b34d9fa846dc56bdbc3f110f95d7ca8.png
image.png

先用https地址,ssh等下讲其配置。

然后在git bash 界面进入到需要上传的项目根目录,以刚才的testproject为例,执行推送命令:

git push https://gitee.com/rwxing/testproject.git master

但是报如下错误:


img_b3f31ab113e6da7dee18808c94f9c098.png
image.png

执行如下命令:
git config --system --unset credential.helper

再次执行推送命令,就会要你输入码云的用户名以及密码,输入后即可推送成功。

4、团队合作:
所谓团队合作就是让别人也有权限去读写你码云上的那个项目。

img_81411a45eac042bbc7913d5745faa66b.png
image.png

在这个页面就可以添加团队成员。比如添加一个开发者:
img_fed35def597559ad226ba2410e9e6edf.png
image.png

在这里输入你要添加的成员就可以了。
然后你添加的那个成员执行如下命令:
git clone https://gitee.com/rwxing/testproject.git

就可以把项目下载下来,然后进行修改。
修改了再按照步骤提交,再推到码云即可。

5、把码云上项目下载到本地:
git pull 项目地址 master或者
git clone 项目地址 master或者
直接在码云上下载zip,如下图:

img_01bcf390e2e3441145f44f76096e2c8b.png
image.png

注意:
clone与pull的区别:是把码云上的项目整个拽下来,本地从无到有,pull是指更新分支,本地与码云上的有差异才能执行。
把下载的项目导入eclipse:导入时不能import exiting project into workspace,应该 import project from folder or archive,否则会报错no project found

img_8d04407e488a0c57e4df2c8fa92c8254.png
image.png

6、查看日志:
git log

git log --pretty=oneline

img_483f111e8f0886f714e21896ba31ac1e.png
image.png

7、版本切换:
git reset --hard HEAD^^^

img_4aa67b9dc3dcdf615225d81522df50b6.png
image.png

三个^就表示切换到HEAD往前数第三个对应的版本。
但是这样写不好,还要数往前几个,所以用下面的命令更好:
git reset --hard 版本号

版本号就是查看日志时查出的那一串,但是页不用写全版本号,写开头几个,能与其他版本取别开来就可以。

如果你用命令回到了修改前的初始状态,但是后悔了,发现这修改是有用的,想回到之前的修改状态,执行下面的命令:
git reflog

这个命令可以查看被你干掉的那些版本的版本号。


img_803faafdc325d59c093a0bc649ec6fce.png
image.png

git reset --hard 5c44d
这样就可以随意的切换版本。

8、分支管理:
分支的理解:
分支其实很好理解,比如有两条河,它们汇入同一条江,那么这条江就是主线,两条河就是分支。那么分支有何好处呢?好处就是分支提交之前不会影响主线。比如一个小孩子在河里尿尿,还有一个小孩子在另一条河里洗脚,假设他们尿尿和洗脚都要手动提交后,携带洗脚水和尿的河水才会汇入到那条江中,那么在他们没有提交之前,江水还是干净的。虽然比喻不太恰当,但个人觉得还是能理解的。

分支的操作:
查看分支:
git branch
创建分支:
git branch 分支名
切换分支:
git checkout 分支名

img_2bfeda5944e13d53c6a7e6530762d068.png
image.png

这时候你就可以在branch1分支上修改程序,而不会影响master。比如新增了一个A功能,要新增branch.txt。
img_c876b9e5be025f0895d5046920e3d72c.png
image.png

这时候经理又说先别管这个功能了,有更重要B功能要完成。那么完成了一半的brand.txt怎么办?这时就可以执行如下命令:
保存提交未完成的分支:
git add .
git commit -m "brand1 todo"

切回到master:
git checkout master

切回到master后,你会发现刚才新增的brand.txt不见了。


img_6e1c6b12e54afee46d8732a76d743647.png
image.png

这时候再建一个分支branch2,用于完成B功能。B功能完成后,就add和commit一下,然后切回到master,把branch2分支上的内容合并到master上。
合并分支:
git merge branch2

9、远程仓库配置:

查看该项目在码云上的地址和地址别名:
git remote -v

删除该项目地址别名:
git remote remove 地址别名

为项目地址添加别名:
git remote add origin 项目地址

注意:是地址别名不是项目名

每次push都要输入用户名密码,麻烦得很,所以可以配置公钥。
配置公钥后https的地址就不能用了,要换成ssh的地址,执行如下步骤:

删掉https地址:
git remote remove origin

添加ssh地址:
git remote add origin ssh地址

配置公钥:
生成公钥与秘钥:
ssh-keygen -t rsa -C 1475163879@qq.com

这个邮箱就是刚安装git时,git config user.email时输入的邮箱
输入这个命令后一路回车即可。

img_02ba88652af4d633d3f5f540ff2ac174.png
image.png

找到图中公钥文件:


img_ed829b641288db94f2a59d5ae890e14d.png
image.png

打开文件,把公钥复制下来,然后在下图处粘贴即可。


img_367dbf57ecbcfd1a74e0eb21688885e0.png
image.png

这样再push时就不用输入用户名密码了。

总结:

git学习内容不多,就那几个命令,一般上传就是先init,再add,然后commit,最后push就可以了;下载就是pullclone或者直接下载zip文件;把下载好的项目导入eclipse一定要注意导入方式,在上面注意事项中已经说过。

以上内容属于个人笔记整理,如有错误,欢迎批评指正!

相关文章
|
26天前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
29 1
记IDEA Git版本回退并push到远程操作
|
1月前
|
开发工具 git
【git 实用指南】git 修复错误提交,版本回退
【git 实用指南】git 修复错误提交,版本回退
26 1
|
3月前
|
存储 开发工具 git
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
66 0
|
4月前
|
测试技术 Linux 开发工具
Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用
Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用
38 0
|
3月前
|
开发工具 git
git各阶段版本回退命令
git各阶段版本回退命令
|
1天前
|
存储 安全 Linux
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
|
1天前
|
Shell Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
|
1月前
|
开发工具 git
IDEA通过git回滚到某个提交节点或某个版本的操作方法
IDEA通过git回滚到某个提交节点或某个版本的操作方法
18 0
|
7月前
|
算法 开发工具 git
轻松掌握Git开发(三)版本的切换
轻松掌握Git开发(三)版本的切换
|
3月前
|
开发工具 git
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)

热门文章

最新文章

相关实验场景

更多