You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
3.1 KiB
177 lines
3.1 KiB
4 months ago
|
# Git学习
|
||
|
|
||
|
> 来自于Bilibili
|
||
|
> 【狂神说Java】Git最新教程通俗易懂
|
||
|
|
||
|
|
||
|
## Git配置
|
||
|
|
||
|
1. 查看Git配置
|
||
|
|
||
|
```bash
|
||
|
# 查看系统配置
|
||
|
git config --system --list
|
||
|
# 查看当前用户配置global
|
||
|
git config --global --list
|
||
|
# 查看当前仓库配置
|
||
|
git config -l
|
||
|
```
|
||
|
|
||
|
2. 设置用户标识
|
||
|
|
||
|
```bash
|
||
|
# 用户名称
|
||
|
git config user.name "name"
|
||
|
# 邮箱
|
||
|
git config user.email "email"
|
||
|
```
|
||
|
|
||
|
|
||
|
## 核心
|
||
|
|
||
|
1. 四个区域
|
||
|
|
||
|
- 工作区
|
||
|
|
||
|
- 暂存区
|
||
|
|
||
|
- 仓库区
|
||
|
|
||
|
- 远程仓库
|
||
|
|
||
|
## 操作
|
||
|
|
||
|
1. 初始化
|
||
|
|
||
|
```bash
|
||
|
# 本地创建
|
||
|
git init
|
||
|
# 远程克隆
|
||
|
git clone url
|
||
|
```
|
||
|
|
||
|
2. 查看文件状态
|
||
|
|
||
|
```bash
|
||
|
# 查看指定文件状态
|
||
|
git status [filename]
|
||
|
# 查看所有文件状态
|
||
|
git status
|
||
|
```
|
||
|
|
||
|
3. 忽略文件
|
||
|
|
||
|
`.gitignore`
|
||
|
|
||
|
- 注释使用`#`开头
|
||
|
|
||
|
- 通配符
|
||
|
|
||
|
- *任意多字符
|
||
|
- ?一个字符
|
||
|
- [abc]可选字符
|
||
|
- {按不出, ds}可选字符串
|
||
|
- !开头表示特例
|
||
|
|
||
|
- /开头代表路径
|
||
|
|
||
|
- /结尾代表路径下所有文件
|
||
|
|
||
|
4. 提交流程
|
||
|
|
||
|
```bash
|
||
|
# 添加到暂存区
|
||
|
# .代表所有
|
||
|
git add .
|
||
|
# 提交
|
||
|
git commit -m "message"
|
||
|
# 推送到远程
|
||
|
git push
|
||
|
```
|
||
|
|
||
|
5. 分支
|
||
|
|
||
|
```bash
|
||
|
# 列出所有本地分支
|
||
|
git branch
|
||
|
# 列出所有远程分支
|
||
|
git branch -r
|
||
|
# 创建一个分支但依然停留在当前分支
|
||
|
git branch [分支名称]
|
||
|
# 创建分支并切换到改分支
|
||
|
git checkout -b [分支名称]
|
||
|
# 切换存在的分支
|
||
|
git checkout [分支名称]
|
||
|
# 切换到远程分支并创建本地分支
|
||
|
# 一般远程分支为 orign/分支名
|
||
|
git checkout -b [新本地分支] [远程分支]
|
||
|
# 删除分支
|
||
|
git branch -d [分支名称]
|
||
|
# 删除远程分支
|
||
|
git push orign --delete [远程分支名称]
|
||
|
git branch -dr [remote/branch]
|
||
|
|
||
|
# 合并分支到当前分支
|
||
|
git merge [分支名称]
|
||
|
|
||
|
```
|
||
|
|
||
|
6. 查看提交记录
|
||
|
|
||
|
```bash
|
||
|
# 查看概览
|
||
|
git log
|
||
|
# 查看修改内容
|
||
|
git log -p
|
||
|
# 最近n条记录
|
||
|
git log -[n]
|
||
|
# 查看简介信息
|
||
|
git log --oneline
|
||
|
# 分支变动
|
||
|
git log --graph
|
||
|
# 逆向显示
|
||
|
git log --reverse
|
||
|
# 查找指定用户的提交日志
|
||
|
git log --author=Linus --oneline -5
|
||
|
|
||
|
|
||
|
# 查看指定文件的修改记录
|
||
|
git blame <file>
|
||
|
|
||
|
```
|
||
|
|
||
|
7. 回退版本
|
||
|
|
||
|
```bash
|
||
|
$ git reset HEAD^ # 回退所有内容到上一个版本
|
||
|
$ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
|
||
|
$ git reset 052e # 回退到指定版本
|
||
|
```
|
||
|
|
||
|
|
||
|
8. 清空暂存区
|
||
|
|
||
|
- 还没有进行 add . 和 commit 操作
|
||
|
|
||
|
```bash
|
||
|
# 只能清空全部已修改的问题件, 但是对于新建的文件和文件夹无法清空, 必须组合下面命令;
|
||
|
$ git checkout .
|
||
|
# 清空所有新建的文件和文件夹;
|
||
|
git clean -d
|
||
|
```
|
||
|
|
||
|
- 已经 add . 了, 用如下命令重置
|
||
|
|
||
|
```bash
|
||
|
$ git reset .
|
||
|
```
|
||
|
|
||
|
9. 远程仓库
|
||
|
|
||
|
```bash
|
||
|
# 添加远程仓库
|
||
|
git remote add origin <url>
|
||
|
# 提交到远程仓库
|
||
|
git push -u origin master
|
||
|
# 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
|
||
|
```
|