目录
git知识合集https://gitee.com/all-about-git
常用的Linux命令(Git Bash中使用)
-
cd … 切换至上级目录(注意要有空格)
-
cd Desktop 进入当前目录下的Desktop目录
-
pwd 显示当前路径
-
clear 清屏
-
ls 列出当前目录下的所有文件
-
touch 新建文件
touch index.js
-
rm 删除文件
-
mkdir 创建目录
-
rm -r 删除目录
rm -rf / (切勿在Linux下使用,删除电脑中所有文件)
-
mv 移动命令
mv index.html test (mv+被移动的文件+目标路径)
-
reset 重新初始化终端
-
history 查看历史命令
-
#表示注释
-
exit退出终端
Git的配置信息
- git config --system --list(查看系统配置 文件位置 D:\code\Git\etc\gitconfig)
- git config -l(查看所有配置,包括用户等等)
- git config --global --list(查看用户配置 文件位置 C:\Users\lenovo\gitconfig 配置之后才会有这个文件)
首次下载,配置用户信息
git config --global user.name "tyrion"
git config --global user.email "993301869qq.com"
Git的基本理论(核心)
Git本地三个工作区域
- 工作目录(working directory):平时存放代码的地方
- 暂存区(Satage/Index):临时存放改动,事实上只是一个文件,保存即将提交到文件列表的信息
- 资源库(Repository/Git Directory):安全存放数据的地方,里面有所有提交的版本的数据,其中head指向最新放入仓库的版本
Git远程仓库
- 远程仓库(remote directory):托管代码的服务器,
文件转换如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VGm5sdvw-1605762363309)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201117105754041.png)]
本地仓库搭建
两种方法:
- 创建新仓库
- 克隆远程仓库
本地仓库搭建
当前目录新建Git代码库
git init
克隆远程仓库
git clone url
(git clone https://github.com/TheAlgorithms/Java.git)
Git文件操作
4种状态
-
untracked:未跟踪,即在文件夹中,但没有加入到git库,不参与版本控制
通过
git add
状态变为staged
-
unmodified:文件已入库,未修改,即版本库中的文件快照内容与文件夹内容完全一致,这种类型的文件有两种去处
如果被修改,变为
modified
如果使用git rm
移出版本库,则成为untracked
文件 -
modified:文件已经修改,这种文件有两个去处
使用
git checkout
则丢弃修改,返回到modified
状态使用``
-
staged:暂存状态,执行
git commit
则将修改同步到库中,这之后库中的文件和本地的文件又变为一致,文件回到unmodified
状态,执行git reset HEAD filename
取消暂存,文件文件状态变为unmodified
状态
git基本命令
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
#添加所有文件至暂存区
git add .
#提交暂存区的内容到本地仓库(-m表示信息)
git commit -m ""(引号中写commit信息)
忽略文件
在项目中,很多文件是不需要被纳入到版本控制中的,比如数据库文件,临时文件,设计文件等等
在主目录下建立".gitignore"文件:
-
文件中的空行或以#开始的行是是无效的
-
可以使用Linux通配符。例如:*代表任意多个字符,?代表一个字符,[abc]代表可选字符范围,{string1,string2}代表可选字符串
-
!表示例外规则,将不会被忽略
-
/url 表示忽略的文件 在此目录下,子目录中的文件将不会被忽略
/temp 仅忽略根目录下的temp文件,不包括其他目录的temp文件
- url/ 表示忽略的是此目录下的该名称的子目录
build/ 忽略build/目录下的所有文件
doc/*.txt 忽略doc下所有txt文件,但其他仍为正常
使用Git新建远程仓库
-
添加ssh
在/c/Users/lenovo/.ssh路径中使用git bash,输入如下命令(提出一直点回车即可)
ssh-keygen -t rsa
- 在github中头像的找到设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bN9BY79s-1605762363311)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201117164530932.png)]
在左侧找到ssh选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKYbrfnp-1605762363313)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201117164603008.png)]
之后选择new SSH Key,将之前.ssh文件中生成的.pub文件中的内容复制到下面的框中提交即可
- 在github页面的右上角找到+号,选择新建仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yo6Eh8zi-1605762363314)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201117164901517.png)]
- 创建完成后,在本机的文件夹使用git bash下载项目
git clone url
在idea中使用Git
- 在idea中创建项目
- 将git clone下载下来的文件夹中的所有文件复制到idea创建的项目中即可
集成git后,idea中的文件颜色会发生变化
- 红色:未加入版本控制
- 绿色:添加到暂存区的文件
- 蓝色:加入到版本控制,已提交,有改动
- 白色:加入到版本控制,已提交,无改动
- 灰色:版本控制的忽略文件
add操作的3种方法:
-
在idea的terminal中可以使用
git add .
进行add操作 -
也可以点击右上角的commit选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WKpY6pUW-1605762363315)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201119113049964.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DHqEjnlW-1605762363316)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201119113111730.png)]
前方有对勾的文件就是已经被add到暂存区的文件,没有add的也可以手动点击即可
- 对于单个文件,可以右击在git选项中找到add的子选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3845YgCR-1605762363317)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201119113422272.png)]
commit:
commit时,一定要写Commit Message,否则会报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ykTLXVlB-1605762363318)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201119113804990.png)]
提交之后在idea下面的git中的Log选项可以看到日志
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-soyiSnzd-1605762363319)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20201119114248167.png)]
此时,在远程仓库中还不能看到修改,我们还需要push
push:
-
在terminal中
git push
即可 -
可以使用idea右上角的push选项
Git分支
git branch # 列出本地当前所有分支
git branch -r # 列出远程分支
git branch dev # 新建dev分支,但仍保持当前分支
git checkpoint -b dev # 新建dev分支并切换至dev分支工作
git merge dev # 将dev分支合并至当前分支
git branch -d dev # 删除dev分支
#删除远程分支
git push origin --delete [branch]
git branch -dr [remote/branch]
git branch # 列出本地当前所有分支
git branch -r # 列出远程分支
git branch dev # 新建dev分支,但仍保持当前分支
git checkpoint -b dev # 新建dev分支并切换至dev分支工作
git merge dev # 将dev分支合并至当前分支
git branch -d dev # 删除dev分支
#删除远程分支
git push origin --delete [branch]
git branch -dr [remote/branch]