git管理工具学习(二)——git图谱&git常用命令

Git的安装和图谱

版本控制工具介绍

VSC(version control system):版本控制系统

  • 集中式——客户端必须时刻和服务器相连

    SVM

  • 分布式——服务端和客户端都有完整的版本库
    - GitHub——全球最大

    • GitLab——公司常用;免费、提供了持续集成-CI;如阿里云、点评Git,Linus开发
    • 基于Git的开源社区——背景:DevOps时代,开发运维
  • git官方文档地址

  • git下载安装地址

git图谱详解

问题:这两天在公式开发中开始用git进行开发了,但是一打开IDEA的客户端。却看到了复杂的git图谱。各种颜色的分支、各种颜色的线。看到了这些纵横交错的线,只感觉蒙蒙的。

1. 新的分支`commit`的差异,产生了新的支线
2. 同一分支,不同仓库`commit`的差异,产生了新的分支
3. 同一分支,不同仓库的`merge`,合并了支线
4. 不同分支的`merge`合并了支线

Git基本配置

git 的最小配置

## 添加name和email配置
git config [--local | --global | --system] user.name 'Your name'
git config [--local | --global | --system] user.email 'Your email'
## 查看现有配置
git config --list [--local | --global | --system]
## 区别
##  --local:本仓库
##  --global: 当前用户的所有仓库
##  --system: 本系统的所有用户

查看Git的文件类型以及文件内容

git cat-file  
-t 看类型
-p 看内容

Git的本地仓库基本使用

创建一个git仓库

## 在已有项目文件夹里创建git仓库
git init
## 新建一个名为[Project Name]的git仓库
git init [Project Name]

创建并提交一个文件

## 添加文件到该git项目中
## 添加要commit的文件到
git add [File Name]
### PS:添加当前路径下的所有文件—— git add .
## 附带信息进行commit操作
git commit -m'Some Message'
### 查看git状态,如:哪些文件待commit,哪些未被跟踪
git status
### 查看git记录,如:commit的记录
git log

给文件重命名的简便方法

## 重命名
mv readme readme.md
## 添加新文件readme.md
git add readme.md
## 删除被跟踪的旧文件readme
git rm readme
## 一条命令顶上面三条
git mv readme readme.md
## 提交
git commit -m"rename"

工作区直接提交

git commit -am'msg'

从缓存区清除一个文件

git rm <FILENAME>

通过git log 查看历史变化

## 查看简洁的单行历史
git log --oneline
## 查看最近的4条历史
git log -n4
git log -4 
## 查看所有分支的历史
git log --all
## 查看指定分支(名为BRANCH_NAME)的历史
git log BRANCH_NAME
## 查看图形化的版本历史
git log --graph
## 组合使用:查看所有分支最近4条图形化的单行历史
git log --all -n4 --graph --oneline
## 跳转到网页版的git log帮助文档
git help --web log

工作区,暂存区,HEAD文件管理

清空暂存,回退

## 回退到最新的一次提交,即清空暂存区
git reset --hard

暂存区恢复成HEAD

## 暂存区恢复成HEAD
git reset HEAD

工作区恢复为暂存区

## 恢复所有文件,加参数后只恢复某个文件
git checkout 
git checkout <FILENAME>

工作区的指定文件恢复成暂存区

## 把工作区的某个 file 替换为暂存区
git checkout -- file
## 把工作区变更的所有文件都恢复成和暂存区的一样
git checkout *

取消暂存区文件修改

git reset HEAD [FILENAME]

本地仓库的分支管理

创建新的分支

### 从某个分支创建新的分支
git checkout -b <NEW_BRANCH_NAME> <BASE_BRANCH_NAME/HASH_OF_COMMIT>

删除分支

git branch -d <BRANCH_NAME>

## 强制删除分支
git branch -D <BRANCH_NAME>
## 删除远程分支
git push <REMOTE> --delete <BRANCH_NAME>

查看分支&切换分支

## 同时查看本地和远程的分支
git branch -a
## 创建名为new_branch的新分支
git checkout -b  <new_branch> []

可以直接checkout 某个commit

## detached HEAD
git checkout <HASH_OF_COMMIT>
## 1. 如果不想保留,直接切换分支
## 2. 如果想保留,需要创建新分支与其对应
git branch <new_branch> <HASH_OF_COMMIT>

查看文件的不同

查看不同

## 比较两个commit之间的文件差异
git diff <A> <B>
git diff 34976f8 a60a3d5 
git diff HEAD HEAD~ 
git diff HEAD 'HEAD^'
## 比较暂存区和HEAD的区别
git diff --cached
## 比较工作区和暂存区所含文件的差异
git diff
git diff --filename
## 看看不同提交的指定文件的差异
git diff <HASH_OF_COMMIT> <HASH_OF_COMMIT> [-- FILENAME]

变基

## 修改最新的commit的message
git commit --amend 
## 怎么修改老旧commit的message,变基操作要基于父commit
## 要修改最开始的commit hashcommit 为 --root
git rebase -i <HASH_OF_COMMIT>
## 交互式
r,reword [修改message]
s,squash [合并连续的commit],[将不连续的commit调整顺序后也可合并]
## 中断后
git rebase --continue

加急任务&暂存当前任务

## 当前工作区和暂存区的内容迁移到一个额外的栈
git stash
## 先查看stash了哪些内容
git stash list
## 恢复栈顶的保存记录,且记录列表里还保留该记录
git stash apply
## 恢复栈顶的保存记录,并把记录列表里的该记录删除
git stash pop

取消最近几次提交

git reset --hard <HASH_OF_COMMIT>

与远程仓库多人协作

从远程仓库备份

git clone 、 git push
## 本地添加一个远程服务地址
git remote add intel file:///Users/double/Desktop/test_remote/intel.git
## 查看信息
git remote -v

先拉后推

git fetch github
git merge

git pull
## 通过merge的方式进行拉取
git pull --no-rebase

猜你喜欢

转载自blog.csdn.net/u013795102/article/details/132033170