Git+码云+IDEA 环境搭建
Git 是目前是世界上最先进的分布式版本控制系统。
版本控制
-
本地版本控制
版本全部保存在本地
-
集中版本控制(SVN)
所有代码存放在集中的服务器上,本地电脑只有以前的版本,如果没有联网,就不能看到历史版本。
-
分布式版本控制(Git)
本地保存所有全部代码,不会因为服务器和网络问题造成代码丢失的问题
Git 环境配置
官网下载,无脑安装。
可以通过右键菜单打开
- Git Bash:Linux 风格的命令行
- Git CMD:WIndows 风格的命令行
- Git GUI:图形界面,不建议使用
查看配置:git config -l
查看系统配置:git config --system --list
查看本地配置:git config --global --list
配置用户名和邮箱
git config --global user.name "name"
git config --global user.email 邮箱
常用的基本命令(Linux)
cd
改变目录cd..
返回上一个目录pwd
显示所在目录ls
ll
列出当·前目录中的所有文件touch
新建一个文件rm
删除一个文件mkdir
新建一个文件夹rm-r
删除一个文件夹mv
移动文件reset
重新初始化终端/清屏clear
清屏history
查看历史命令help
帮助exit
推出#
表示注释
Git 基本原理
Git 本地有三个区域
-
工作目录 (Working Directory)
存放代码的地方
-
暂存区(Stage/index)
用于临时存放改动,实质上只是一个文件,保存即将提交到文件列表的信息
-
资源库(Repository/Git Directory)
仓库区,就是安全存放数据的位置,这里面有提交的所有版本的数据。其中 HEAD 指向最新放入仓库的版本。
远程有一个区域
-
远程的 Git 仓库 (Remote Directory)
远程仓库,托管代码的服务器,可以简单地认为是项目组中的一台电脑用于远程数据交换。
Git 项目搭建
本地仓库搭建
项目路径下运行 git bash
# 在当前目录新建一个Git代码库
git init
克隆远程仓库
# 克隆一个项目和它的整个代码历史(版本信息)
git clone [url]
Git 文件操作
- Untracked:未跟踪,此文件在文件夹中,但是没有加入到 git 库,不参与版本控制,通过
git add
状态改变为 Staged - Unmodified:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,如果它被修改,而变为 Modified。如果使用
git rm
移除版本库,则成为 Untracked 文件。 - Modified:文件已修改,仅仅是修改,并没有进行其他的操作。可以通过
git add
进入 staged 状态,使用git checkout
则丢弃修改过,返回到 Unmodified 这个状态。git checkout
即从库中取出文件,覆盖当前修改。- Staged:暂存状态,执行
git commit
则将修改同步到库中,这时库中的文件和本地的文件又变为一致,文件为 Unmodified 状态,执行git reset HEAD filename
取消暂存,文件状态为 Modified。
- Staged:暂存状态,执行
查看文件状态
# 查看所有文件状态
git status
# 查看指定文件状态
git status [filename]
# 添加所有文件到暂存区
git add .
# 提交暂存区中的文件到本地仓库 -m 提交信息
git commit -m "消息内容"
忽略文件
有些时候我们不想把某些文件纳入到版本控制中,比如数据库文件,临时文件,设计文件等,在主目录下建立 ‘.gitignore’ 文件,此文件有如下规则:
- 忽略文件中的空行或以#号开头的行将会被忽略
- 可以使用 Linux 通配符,例如:* 号代表任意多的字符,?号代表一个字符,方括号代表可选字符的范围,大括号代表可选的字符串等。
- 如果名称最前面有一个 !号,表示例外规则,将不被忽略。
- 如果名称最前面是一个/,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称最后面是一个/,表示要忽略的是此目录下该名称的子目录,而非此文件(默认文件或目录都忽略)
# 为注释
*.txt # 忽略所有 .txt 结尾的文件,这样的话,上传就不会被选中!
!lib.txt # 但 lib.txt 除外
/temp # 仅忽略项目根目录下的 TODO 文件,但不包括其他目录 temp
build/ # 仅忽略 build 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
使用码云(Gitee)
github 需要翻墙,国内基本使用 gitee,本质上没有区别。公司中有时会搭建自己的 gitlab 服务器
-
注册登录码云,完善个人信息。
认真对待,可以作为找工作时的门面!
-
设置本机绑定 SSH 公钥,实现免密码登录!(免密码登录,码云是远程仓库,我们平时工作在本地仓库!)
进入 C:\Users\Administrator\.ssh 目录 # 生成公钥 ssh-keygen -t rsa
-
将公钥信息 public key 添加到码云账户中即可!
-
使用码云创建一个自己的仓库!
许可证:开源是否可以随意转载/开源但是不能商业使用/不能转载/…/各种限制
-
克隆到本地
IDEA 中集成 Git
-
新建项目,绑定 Git
-
将我们远程的 git 文件目录拷贝到项目中,注意观察 idea 的变化
-
-
修改文件,使用 IDEA 操作 git
- 添加到暂存区
- commit 提交
- push 到远程仓库
-
提交测试
Git 分支
Git 分支在 Git 中是一个难点,分支就相当于电影里的平行宇宙,如果两个平行宇宙相互不干扰,那对现在的你并不影响。但是如果平行宇宙合并了,就需要一些问题了!
master 主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的 dev 分支上工作,工作完后,比如马山要发布,或者说 dev 代码稳定后可以合并到主分支 master 上来。
分支
Git 分支在 Git 中是一个难点,分支就相当于电影里的平行宇宙,如果两个平行宇宙相互不干扰,那对现在的你并不影响。但是如果平行宇宙合并了,就需要一些问题了!
master 主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的 dev 分支上工作,工作完后,比如马山要发布,或者说 dev 代码稳定后可以合并到主分支 master 上来。