Git学习

本文详细介绍了Git作为版本控制系统的作用和重要性,以及它与SVN的区别。讲解了Git的本地、集中和分布式版本控制类型,强调了Git的离线提交和分布式特性。此外,还阐述了Git的基本操作,如初始化、添加、提交和推送,以及如何配置Git、忽略文件和使用码云等。最后,提到了IDEA中集成Git的工作流程和分支管理,突显了Git在多人协作开发中的价值。
摘要由CSDN通过智能技术生成

1.版本控制 :在开发的过程中管理我们对文件、目录、或工程等内容的修改历史 方便查看更改历史备份以便恢复以前版本的软件工程技术。作用:

多人开放必须要使用版本控制,否则代价会比较大

主流的版本控制:Git(最流行)、SVN

2.版本控制分类:

(1)本地版本控制RCS

记录每次版本的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用。

(2)集中版本控制 SVN

所以对版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

(3)分布式版本控制 Git

每个人都拥有全部的代码!安全隐患!不会因为服务器损坏或者网络问题,造成不能工作的情况!

所以版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所以版本历史,可以离线在本地提交,只需要在连网时Push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

3.Git和SVN的主要区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络宽带要求较高。

Git是分布式控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的,比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需要把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件。

GIt是目前世界上最先进的控制版本。

4.  镜像安装快 全选下一步

5.安装成功后在开始菜单中会有GIT项,菜单下有3个程序/任意文件夹下右键也可以看到对应的

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多(命令区别 比如Linux下清除是clear)

Git CMD:Windows风格的命令行(win下清除是cls)

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

6.基础Linux命令

右键打开 Git Bash Here        ls 列出当前所有文件    ll更详细

点开文件 右键打开 Git Bash Here 目录就自动在当前目录下、

cd.. 切换上级目录

cd gitcode 切换当前gitcode目录

cd..

cd..切换到桌面了

pwd 查看当前所在目录

clear 清屏

只要不报错都是对的

touch index.js 创建一个文件 ls

rm index.js 移除文件

mkdir test 创建一个目录

rm -rf 切勿在Linux中尝试!递归删除电脑全部文件

rm -r test 删除test 目录

touch index.html

mkdir test

mv index.html  test 将index.html移动到test文件

history 查看历史命令

clear没了

exit 退出  #注释

7.Git配置   查看配置 git config -l

打开Git bash

查看系统的一些配置                                          git config -l --sysytem --list

用户自己配置的(用户名密码是必须配置的)   git config --global --list

所有的配置文件都保存在本地  一切皆文件

Git相关的配置文件:

1)win 里找文件    Git\etc\gitconfig:Git安装目录下的gitconfig  --sysytem系统级

和输入git config --sysytem --list 出来的结果一样

2)设置用户名密码   git config --global user.name "zhiting"

git config --global user.email "573974352@qq.com"

C:\User\Adminstrator\.gitconfig. 只适用于当前登陆用户配置  --global 全局

这里可以直接编辑配置文件,通过命令设置后会相应到这里。

8.环境变量只是为了全局使用而已 已经自动配置环境变量了

9.Git基本理论

Git本地有三个工作区域:工作目录(working directory)、暂存区(stage/index)、资源库(Repository或Git directory),如果在加上原创的Git仓库(remote directory)就可以分为四个工作区域,文件在这四个区域之间的转换关系如下:

Workspace工作区:就是平常存放代码的地方

Index/Stage暂存区:用于临时存放你的改动,本质上只是一个文件,保存即将提交到文件列表信息

Repository仓库区:就是安全存放数据的位置,这里面有你提交到所有版本的数据,其中head指向最新放入仓库的脚本

Remote远程仓库GitHub(国外) Gitee(国内):托管代码的服务器,可以简单认为是你项目组中的一台电脑用于远程数据交换

10.git的工作流程:

(1)在目录中添加、修改文件        UserMapper.xml

(2)将需要进行版本管理的文件放入暂存区域        git add .(.代表全部add进去了)

(3)将暂存区域的文件提交到Git仓库         git commit

 11.Git项目搭建

add commit push clone pull checkout

本地仓库搭建

xxx/gitcode    右键Git Bash Here

在当前目录新建一个Git代码库

git init-->.git   初始化(git命令)把隐藏的项目打勾

执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面

远程克隆仓库

git clone http://gitee.com/zhiting/openclass.git

12.Git文件操作

hello.java-->git add.-->git commit

 文件4种状态 版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在不想提交的文件,或者想要提交的文件没提交上。

git init -->新建一个hello.txt

git status(查看所有文件状态)--> untracked files

git add .(添加所有文件到暂存区)

git status(git status hello.txt查看指定文件状态)-->changes to be commited 

git commit -m “消息内容”  (提交暂存区中的内容到本地仓库) -m 提交信息

git commit -m "new file hello.txt"        提交过去

git status-->nothing to commit,working tree clean

13.忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件、临时文件、设计文件等

在主目录下建立.gitignore文件,此文件有如下规则:

(1)忽略文件中的空行,或以#开始的行将会被忽略

(2)可以使用Linux通配符。例如:*代表任意多个字符、?代表一个字符、方括号[abd]代表可选字符范围、大括号{String1,String2,...}代表可选字符串

(3)如果名称的最前面有一个感叹号!,表示例外规则,将不被忽略

(4)如果名称的最前面是一个路径分隔符/,表示要忽略的文件在此目录下,而子目录中的文件不忽略

(5)如果名称的最后面是一个/,表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)

*.txt  忽略所有.txt结尾的文件,这样上传就不会被选中

!lib.txt  但lib.txt除外

/temp 仅忽略根目录下的TODO文件,不包括其他目录temp

bulid/ 忽略build目录下的所有文件

doc/*.txt 会忽略 doc/notes.txt但不包括doc/server/arch.txt

14.使用码云

github是有墙的,比较慢,在国内的话,一般使用Gitee,公司中有时候会搭建自己的gitlab服务器

(1)注册登陆码云,完善个人信息

(2)设置本机绑定SSH公钥,实现免密码登录

进入电脑的 C:\Users\Adminstrator\.ssh 目录

空文件夹

生成公钥  ssh-keygen

加密公钥ssh-keygen -t rsa

一路空格下去

 (3)将公钥信息Public key添加到码云账户中即可

 

 

 (4)使用码云创建一个自己的仓库

+ 新建仓库

 许可证:开源是否可以随意转载,开源但是不能商业使用,不能转载

克隆到本地! gitcode 右键

git clone http://gitee.com/kuangstudy/gitstudy.git

 15.IDEA中集成Git

(1)新建项目,绑定git

将我们远程的git文件目录拷贝到项目中即可!Idea刷新一下,文件的颜色就是选中的状态(红色)

右上角-->IDEA集成的Git的基本操作

命令行 Terminal       git add .    添加进去变成绿色的

(2)修改文件,使用 IDEA操作git

修改文件-->右键要修改的文件

add 添加 commit就

 直接用命令行 git add .

 git push push到远程

添加到暂存区-->commit提交-->push到远程仓库

(3)提交测试

git add .

git commit -m "new file hello.java"

git push

16.Git分支

master主分支 dev开发用 v4.0不同版本的分支 v3.0

进入自己的目录 git-xuexi  右键Git bash here

git branch -->* master  查看当前分支-->master

git branch -r(remove)查看远程分支-->master

git branch dev 新建dev分支,但是还停留在master分支

git branch  列出本地所有分支

git branch -r 列出所有远程分支

git branch [branch-name] 新建一个分支,但依然停留在当前分支

git checkout -b [branch] 新建一个分支,并切换到该分支

git merge [branch]  合并指定分支到当前分支

git branch -d dev   删除dev分支

git branch origin --delete [branch-name]  删除远程分支

git branch -dr [remote/branch]  删除远程分支

多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本。

web-api  A(Restful.xx())

web-admin  B会调用A(修改了A的代码)

web-app   C会调用B和A的代码

如果冲突了就需要协商即可

如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作在新建的dev分支上工作,工作完后要发布,把dev代码合并到主分支master上来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值