欢迎光临散文网 会员登陆 & 注册

【狂神说Java】Git最新教程通俗易懂

2023-04-09 16:13 作者:李狗俊0_0  | 我要投稿

版本控制

概念

版本控制、版本迭代、版本管理器

相关软件

Git、SVN、CSV、VSS、TFS

版本控制软件分类

1.本地版本控制:适合个人用

2.集中版本控制:

  • 所有的版本数据都存在服务器上,协同开发者从服务上同步更新或上传自己的修改。代表软件:SVN、CSV、VSS。
  • 优缺点:用户本地只有自己以前同步的版本,不联网的话,就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。
  • 所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样会丢失所有的数据,当然可以定期备份。

3.分布式版本控制系统:git

  • 每个用户都拥有全部的代码。有安全隐患。
  • 不会因为服务器损坏或者网络问题,造成不能工作的情况。
  • 所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有的版本数据,可以离线在本地提交,只需要在联网是push到相应服务器或者其他用户那里。由于每个用户那里保存的都是所有的版本书记,只要有一个用户的设备没问题,就可以恢复所有的数据,但这增加了本地存储空间的占用。

4.git和svn的区别

  • git是分布式,svn是集成式
  • 命令其实差不多


Git历史

linux缔造者linux torvalds开发出了Git。

Git免费、开源,分布式版本控制系统。


Git环境配置

下载:

官网可以下载很慢;可以找镜像下载;

卸载:

1.清理环境变量

2.程序与软件中直接卸载即可

安装:

无脑下一步即可(路径选自己的路径)

检查:

软件中有git的三个程序;

任意文件夹下右键也可以看到对应的程序。

mac在终端中输入 git --version

which git


Linux常用命令

cd #改变目录

cd.. #退回目录

pwd #显示路径

clear #清屏

cls #清屏

ls #列出目录中文件

touch #创建文件

rm #删除文件

mkdir #创建文件夹

rm -rf #递归删除

rm -r #删除文件夹

mv #移动文件

reset #重新初始化终端

history #显示历史命令

help #帮助

exit #退出


Git配置

git config --global user.name "lijun" #设置user.name

git config --global user.email "jun@qq.com" #设置user.email

git config -l #查看git配置

git config --system --list #win查看系统git配置

git config --global --list #(win/mac)查看本地git配置


Git创建本地仓库

mkdir mygit

cd mygit

git init #Git创建初始化本地仓库



Git基本理论

Git的3个工作区域

  • 工作目录(working directory,是你平时存放代码的目录)
  • 暂存区域(stage/index,用于存放临时的改动,事实它是一个文件,保存即提交到文件列表信息)
  • 资源仓库(Repository/Git directory)
  • 本地资源仓库(下图的History)
  • 远端资源仓库(Remote,托管代码的服务器,如:GitHub|Gitee)

不同区域的转换关系如下:

Git的工作流程 :

  1. 在工作目录(working directory)中添加、修改文件;
  2. git add #将需要进行版本管理的文件放入暂存区
  3. git commit #将暂存区域的文件提交到git仓库

Git管理的文件有三种状态:

  • 已修改modified
  • 已暂存staged
  • 已提交committed


Git项目搭建

两个搭建方法:

1.git init #本地新建仓库

2.git clone url #克隆远程仓库

日常使用6个命令:

  • git add #把文件从工作区加到暂存区
  • git commit #把文件从暂存区加到本地仓库
  • git push #从本地仓库推到远端仓库
  • git clone #克隆远端仓库
  • git checkout #丢弃修改,回滚操作
  • git pull #
  • git commit -m "注释" #comment自己的修改,提交暂存区的内容到本地仓库


Git文件操作

文件4种状态(untracked|unmodify|modified|staged)

  1. Untracked:未跟踪,此文件在文件夹中,但并没有加入到git 库,不参与版本控制。通过 git add 状态变为 staged
  2. Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致.这种类型的文件有两种去处,如果它被修改,而变为 Modified ,如果使用 git rm 移出版本库,则成为 untracked 文件
  3. Modified:文件已修改,仅仅是修改,并没有进行其他的操作。这个文件也有两个去处,通过 git add 可进入暂存 git add staged 状态,使用 git checkout ,则丢弃修改过,返回到unmodify 状态。这个 git checkout 即从库中取出文件,覆盖当前修改!
  4. Staged:暂存状态。执行 git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 unmodify 状态。执行 git reset HEAD filename 取消暂存,文件状态为Modified


查看文件状态:

  • git status #查看所有文件状态
  • git status [filename] #查看文件filename状态
  • git add . #添加所有文件到暂存区


忽略文件

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

在目录下.gitignore文件中进行设置忽略,文件书写规则如下:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号[abc]代表可选字符范围,大括号 {string1,string2.} 代表可选的字符串等。
  3. 名称的最前面有一个感叹号(!),表示例外规则 ,将不被忽略。
  4. 名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)

*.txt #忽略所有•txt结尾的文件

!lib. txt #lib.txt除外,其他都忽略

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

build/ #忽略bui1d/日录下的所有文件

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


使用码云Gitee

  1. 注册账号,完善个人信息
  2. 设置本机绑定SSH公钥,实现免密码登录。
  3. 将公钥信息public key添加到码云账户中即可
  4. 使用码云创建一个自己的仓库
  5. git clone url #远端仓库克隆到本地


IntelliJ IDEA中集成Git


GIT分支Branch(平行宇宙)

分支的例子

  • master #主分支,master是分支名
  • dev #开发分支develop
  • version1 #版本1的分支

Git分支的常用命令

  • git branch #查询本地所有分支
  • git branch [branch-name] #新建分支
  • git checkout -b [branch] #新建分支,并切换新分支
  • git branch -r #查询本地+远程分支
  • git merge [branch] #合并某分支,到当前本地分支上
  • git push origin --delete [branch-name] #删除远程分枝
  • git branch -dr [remote/branch] #删除远程分枝
  • git branch -d 分支名 #删除分支
  • 修改冲突后的文件后重新提交,选择保留哪个代码即可。
  • master主分支需要保证非常稳定。


【狂神说Java】Git最新教程通俗易懂的评论 (共 条)

分享到微博请遵守国家法律