Git学习笔记
基本的Linux命令
平时一定要多使用这些命令
- cd .. : 返回上级目录(注意有空格)
- cd
指定目录
: 改变目录 - pwd : 显示当前所在目录
- ls : 列出当前目录中的所有文件
- touch : 新建文件,比如
touch index.js
就会新建一个index.js文件 - rm : 删除文件,
rm index.js
把刚刚新建的文件删除 - mkdir : 新建一个目录(文件夹),
mkdir test
- rm -r : 删除一个文件夹,
rm -r test
把刚刚新建的test文件夹删除 - mv : 移动文件,
mv index.html test
就是把html文件移动到test文件夹 - reset : 重新初始化终端/ 清屏
- clear : 清屏 (Windows是cls)
- history : 查看历史命令
- help : 帮助
- exit : 退出
#
: 表示注释
rm -rf / 递归清除,并把所有东西删除,格式化系统个,切勿在
Git配置
所有的配置文件,其实都保存在本地
git config -l 所有的git配置,一般是本地配置
git config --system --list 查看系统配置
git config --global --list 查看全局配置
git config --global -e 打开用户级配置文件
- 系统配置:在安装目录下,git\etcgit\config 可找到配置文件
- 用户配置(必要):C:\Users\Administrator\ .gitconfig 适用于当前登录用户的配置 --global 全局
- 环境变量只是为了全局使用而已
Git基本理论(核心)
工作区域
Git本地有三个工作区域:工作目录(working directory)、暂存区(stage/index)、资源库(repository或Git directory)。如果在加上远程的Git仓库(remote directory)就可以分为四个工作区域。文件在四个区域之间的转换关系如下:
- workspace : 工作区,平时存放项目代码的地方
- index/ stage : 暂存区,用于存放临时改动,事实上只是一个文件,保存即将提交到文件列表的信息
- repository : 仓库区,安全存放数据的位置,又提交的所有版本的数据。HEAD只想最新放入仓库的版本。
- remote : 远程仓库,托管代码的服务器(例如GitHub)
工作流程
一般是这样的:
-
在工作目录中添加、修改文件;
-
将需要进行版本管理的文件放入暂存区域;
-
将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git项目搭建
创建工作目录与常用指令
创建本地仓库的方法有两种:
- 创建新的仓库。
- 克隆远程仓库。
1、创建一个新的仓库
# 使用当前目录作为 Git 仓库,我们只需使它初始化。
$ git init
该命令执行完后会在当前目录生成一个 .git 目录,关于版本等的所有信息都在这个目录
2、另一种方式是克隆远程目录
是将远程服务器上的仓库完全镜像一份至本地
#克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]
Git文件操作
查看文件状态
git status [filename] 查看指定文件状态
git status 查看所有文件状态
git add . 添加所有文件到暂存区
git commit -m 提交暂存区中的内容到本地仓库 -m 提交信息
忽略文件
有时候不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
- 在主目录下建立".gitignore"文件,此文件规则:
- 忽略文件中的空行或以井号(#)开始的行将会被忽略。
- 可以使用Linux通配符。
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分隔符(/),表示药葫芦的是次目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt #忽略所有的.txt结尾的文件,这样的话上传就不会被选中
!lib.txt #但lib.txt除外
/temp #
build/ #
doc/*.txt #
使用GitHub
-
登录注册
-
设置本机绑定SSH公钥,实现免密码登录
# 进入 # 生成公钥 ssh-keygen
(上面是私钥,下面是公钥)
-
将公钥信息public key添加到用户中
-
使用码云创建一个自己的仓库
IDEA中集成Git
Git分支
可以理解多线程:主线程在走,不影响子影响。
它们是平行,互不影响。
但是,他们可以进行合并。
在合并的时候就需要做一些处理了。
git分支中常用指令:
# 列出所有本地分支
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]
如果同一个文件在合并分支时都被修改了则会引起冲突:
解决引起冲突办法:
- 把本地冲突文件另保存起来
- 还原本地文件版本。
- 修改冲突文件后重新提交!
master主分支应该非常稳定,用来发布新版本,
一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,代码稳定了,再合并到主分支上来。
比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
视频学习: