文章目录
版本控制:版本更新之后对不同版本保留、操作
分布式版本控制系统
Git安装
Git Bash : Unix和Linux风格的命令行
Git CMD : Windows风格的命令行
Git GUI : 图形界面的Git
基本的Linux命令
命令 | 描述 |
---|---|
cd | 切换目录 |
cd .. | 切换为上级目录 |
pwd | 显示当前所在的目录路径 |
ls | 列出当前目录下的所有文件 |
touch | 在当前文件下新建文件,touch a.txt在当前目录下新建a.txt文件 |
rm | 删除一个文件,rm a.txt删除当前目录下的a.txt文件 |
mkdir | 新建一个目录,mkdir b在当前目录下新建b目录 |
rm -r | 删除一个目录,rm -r b在当前目录下删除b目录 |
mv | 移动文件,mv a.txt b将当前目录下的a.txt文件移动到当前目录下的b目录中 |
reset | 初始化终端(清屏) |
clear | 清屏 |
history | 查看历史命令 |
help | 帮助 |
exit | 退出 |
# | 注释 |
蓝色表示目录、白色表示文件、绿色表示程序
Git配置
配置命令
git config -l
查看配置
git config --system --list
查看系统配置
git config --global --list
查看本地配置
git config --global user.name "zhao-xiaotian"
设置用户名
git config --global user.email "2645228782@qq.com"
设置邮箱
配置文件路径
Git\etc\gitconfig 保存系统配置
C:\Users\Administrator.gitconfig 保存用户全局配置
Git理论
工作区:平时放代码的地方
暂存区:本质是一个文件,临时存放你的代码变动,一般来说看不到
本地仓库:本地的代码库,.git目录一般隐藏,HEAD文件指向最新版本
远程仓库:一般指Github或Gitee
git add命令会将代码添加至暂存区,git commit命令会把暂存区的代码提交到本地仓库,git push命令会将本地仓库的代码推送到远程仓库。
git pull命令会将代码从远程仓库拉回本地仓库,git reset命令会将代码从本地仓库重置回暂存区,git checkout命令会将代码从暂存区检出至工作目录。
Git项目搭建
常用代码
代码 | 说明 |
---|---|
git init | 本地仓库初始化 |
git clone [url] | 下载目标url仓库的代码 |
git add [filename] | 添加文件到暂存区(filename写成 . 表示所有文件) |
git commit | 提交暂存区的内容到本地仓库 (-m “提交信息”) |
Git文件操作
文件的4种状态
- Untracked:未跟踪,该文件不参与版本控制,通过
git add
使状态变为Staged。 - Staged:暂存状态,通过命令
git commit
同步修改到库,状态会变为Unmodify。使用命令git reset HEAD filename
取消暂存,状态变为Modify。 - Unmodify:文件未修改,版本库的快照和当前文件一样,当修改文件后,状态会变为Modify。如果使用
git rm
则移出版本库,状态变为Untracked。 - Modify:文件已下载,可通过
git add
添加到暂存区,使状态变为Staged。如果使用git checkout
可以恢复到Unmodify状态,原理是用库中版本直接覆盖。
查看文件状态
# 查看指定文件状态
git status [filename]
# 查看所有文件状态
git status
忽略文件
有些文件一般不需要纳入版本控制,比如:数据库文件、临时文件、设计文件等
在主目录下建立".gitignore"文件,此文件规则如下:
- 用
#
表示注释。 - 用
*
表示通配符,?
表示一个字符,[abc]
中括号表示可选字符范围,{aaa,bbb,ccc}
表示可选字符串范围。 - 用
!
表示例外规则(不会被忽略)。 - 用
/
表示路径分隔符,最开始的 / 表示根目录 - 在路径后加
/
表示该路径下的所有文件
举个例子:
*.txt #忽略所有txt文件
!lib.txt #但不忽略lib.txt
/temp #忽略根目录下的temp,/表示根目录
temp/ #忽略temp目录下的所有文件
temp/*.txt #会忽略temp/a.txt,但不会忽略/temp/b/a.txt
使用码云 Gitee
本机绑定SSH公钥
免密登录
# 进入 C:\Users\(当前用户的用户名,每个人不一样)\.ssh 目录
# 生成公钥
ssh-keygen
# 加密,官方推荐算法rsa
# ssh-keygen -t rsa
把 .pub 文件打开,里面的内容就是公钥
idea集成git
- 找一个地方下载git远程仓库的代码
- 本地新建项目(一般同名)
- 在项目目录里粘贴下载下来的远程仓库的所有文件(同名文件选覆盖)
- 查看出现以下图标就说明远程仓库的内容拷贝到本地项目了
文件状态
红色表示选中(已跟踪),绿色表示添加到了暂存区,蓝色是已修改
版本控制
查看版本控制,在idea里老版本是version control,新版本是Git
文件操作
- 添加到暂存区(add)
- commit提交
- push到远程仓库
关于分支
分支就像是不同的版本,互不干扰
常用命令
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
分支冲突
当某个文件咋子合并分支时,两个分支都修改了这个文件,就会发生冲突。
选择某个分支,让这个文件都改成这个分支的文件内容就可以消除冲突。