Git
官网下载安装包,基本使用自动配置即可
- Git Bash:Unix 和 Linux 风格命令行,使用最多
- Git CMD:windows 风格命令行
- Git GUI:图形界面
基本命令
-
cd
:改变目录,追加路径 -
cd ..
:回退到上级目录- 直接
cd
进入默认目录
- 直接
-
pwd
:显示当前所在的目录路径 -
clear
:清屏 -
history
:查看历史命令 -
help
:帮助 -
exit
:退出 -
#
:注释 -
ls 或 ll
:列出当前目录中所有文件ll
列出内容更加详细
-
touch
:在当前目录新建文件- 例如:
touch index.jsp
指令创建 index.jsp 文件
- 例如:
-
rm
:删除文件- 例如:
rm index.jsp
删除 index.jsp 文件
- 例如:
-
mkdir
:创建目录 -
rm -r
:删除目录- 例如:
rm -r src
删除 src 目录
- 例如:
-
mv
:移动文件- 例如:
mv index.jsp src
- index.jsp 是要移动的文件,src 是目标文件夹
- 例如:
-
reset
:重新初始化终端并清屏
查看配置
git config -l
:查看 git 所有配置- 依次是系统级别、用户级别、仓库级别
git config --local -l
- 查看仓库配置
- 必须要进入到具体的目录下,比如要查看 TestGit 仓库的配置信息
git config --global -l
: 查看用户配置
编辑配置
-
git config -e
编辑配置文件git config --local -e
:编辑仓库级别配置文件git config --global -e
:编辑用户级别配置文件- 路径:
C:\Users\欧尼熊\.config
- 路径:
git config --system -e
:编辑系统级别配置文件- 路径:
\Git\etc\gitconfig
- 路径:
-
git config
添加配置项目git config --global user.email “you@example.com”
git config --global user.name “Your Name”
配置用户标识
git config --global user.name 用户名
git config --global user.email 邮箱
- 环境变量是为了全局使用,不配置也可以使用
- 会自动配置到 path
基本理论
Git 在本地工作有三个工作区域
- 工作目录:
Working Directory
- 平时存放代码的地方
- 暂存区:
Stage/Index
- 临时存放改,只是一个文件,保存即将提交的文件列表信息
- 资源库:
Repository
或 Git Directory- 本地仓库,安全存放数据的位置
- 有提交的所有版本的数据,HEAD 指向最新存放的版本
- 远程 git 仓库
Remote Directory
为第四区域- 远程仓库,托管代码的服务器
使用
-
git init
:创建新仓库- 在当前文件夹新建 git 项目
- 在 Git 管理项目的根目录执行
- 执行之后当前文件夹多出
.git
隐藏目录- 包含版本等所有信息
- 在当前文件夹新建 git 项目
-
git clone [url]
:克隆远程目录- 克隆一个项目和整个代码历史(版本信息)
- 将远程服务器上的仓库完全镜像一份到本地
-
git add
:添加文件搭配暂存区git add .
:添加所有文件git checkout
:捡回文件
-
git commit
:将暂存区文件添加到仓库git commit -m "提交信息"
:提交到本地仓库并添加说明信息git reset
:回退版本
-
git push
:上传代码并合并git pull
:下载代码并合并
-
git diff
:比较文件的不同:暂存区和工作区的差异 -
git rm
:删除工作区文件 -
git mv
:移动或重命名工作区文件 -
git log
:查看历史提交记录 -
git blame<file>
:列表形式查看指定文件历史修改记录
文件操作
文件状态
Untracked
:未跟踪- 此文件在文件夹中,未加入 git 仓库。不参与版本控制
- 通过
git add
状态变为staged
Unmodify
:文件已入库,未修改:版本库中文件快照内容与文件夹中完全一致- 两种去处
- 被修改变为
Modified
- 使用
git rm
移除版本库成为Untracked
文件
- 被修改变为
- 两种去处
Modified
:文件已修改,仅仅是修改没有进行其他操作- 两个去处:
git add
进入暂存staged
状态- 使用
git checkout
丢弃修改过,返回Unmodify
状态 git checkout
即从库中取出文件覆盖当前修改
- 使用
- 两个去处:
Staged
:暂存状态- 执行
git commit
将修改同步到库中,这时库中文件和本地文件又变为Unmodify
状态 - 执行
git reset HEAD filename
取消暂存,文件状态为modified
- 执行
命令
git status
:查看当前仓库状态,显示有变更的文件- 查看所有文件状态
git status filename
:查看指定文件状态
忽略文件
-
某些文件不需要纳入版本控制:如 数据库文件、临时文件、设计文件等
-
在主目录下建立
.gitignore
文件,文件规则- 忽略文件中的空行或以
#
开始的行将被忽略
- 忽略文件中的空行或以
-
可使用 Linux 通配符
*
星号:代表任意多字符?
问号:代表一个字符[abc]
方括号:代表可选字符范围{string1, string2}
大括号:代表可选的字符串等
-
名称最前面是感叹号
!
:表示例外规则,将不被忽略 -
名称最前面是路径分隔符
/
:表示要忽略的文件在此目录下,子目录文件不忽略 -
名称最后面是路径分隔符
/
:表示忽略此目录下该名称的子目录,而非文件- 默认文件或目录都忽略
# 为注释
*.text # 忽略所有 .txt 结尾的文件
!lib.txt # 但 lib.txt 文件除外
/temp # 仅忽略项目根目录下的 TODO 文件,不包括其他目录 temp
build/ # 忽略 build 目录下所有文件
doc/*.txt # 忽略 doc/notes.txt 但不包括 doc/server/arch.txt
分支
git branch
:列出所有分支git branch -r
:列出所有远程分支git branch [branch-name]
:新建分支,但依然停留在当前分支git checked -b [branch]
:新建并切换到该分支git merge [branch]
:合并指定分支到当前分支
学习 Git
- Git 命令学习
- 廖雪峰 Git 学习