文章目录
- 一、前言
- 二、工作模块
- 2.1 Workspace:工作区
- 2.2 Index / Stage:暂存区
- 2.3 Repository:本地仓库
- 2.4Remote:远程仓库
- 三、GIT基本配置
- 四、GIT项目代码管理
- 4.1 初始化git仓库
- 4.2 提交到暂存区(stage)
- 4.3 将暂存区的文件恢复到工作区
- 4.4 查看工作区、暂存区的状态
- 4.5 移除暂存区的修改
- 4.6 将缓存区文件提交到本地仓库
- 4.7 撤销commit提交
- 4.8 查看日志
- 五、版本控制
- 5.1 回到指定哈希值对应的版本
- 5.2 版本回退
- 六、GIT分支
- 6.1 查看分支
- 6.2 创建分支
- 6.3 切换分支
- 6.4 创建并切换分支
- 6.5 合并分支
- 6.6 删除分支
- 6.7 删除远程分支
- 七、远程仓库(团队合作)
- 7.1 克隆远程仓库
- 7.2本地仓库与远程库进行关联
- 7.3 查看远程仓库地址别名
- 7.4 新建远程仓库地址别名
- 7.5 删除本地仓库中的远程仓库别名
- 7.6 重命名远程仓库地址别名
- 7.7 远程库的修改拉取到本地
- 7.8 将本地的分支推送到远程仓库(先拉取在push)
一、前言
Git是目前世界上最先进的分布式版本控制系统,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。通过远程仓库实现多人协作开发。
二、工作模块
2.1 Workspace:工作区
就是你在电脑上看到的目录,有一个隐藏文件夹.git,这个不属于工作区,这是版本库。
2.2 Index / Stage:暂存区
暂缓区是存在于版本库中的,也就是.git文件下。通过git add将工作区修改的文件提交到暂存区中
2.3 Repository:本地仓库
这个就代表整个项目在本地电脑中存放的仓库,通过git commit将暂存区数据提交到本地仓库中。
2.4Remote:远程仓库
本地仓库通过pull拉去远程仓库数据,然后push将本地仓库修改内容提交到远程仓库中。
三、GIT基本配置
- 检查git版本:
git --version
- 查看git相关命令:
git --help
- 查看当前的git配置信息:
git config --list
- 查看/设置git用户名:
git config user.name
与git config --global user.name 名称
- 查看/设置git邮箱:
git config user.name
与git config --global user.email 邮箱
四、GIT项目代码管理
4.1 初始化git仓库
git init
4.2 提交到暂存区(stage)
-
git add *
将工作区所有修改添加到暂存区 -
git add .
将工作区所有修改添加到暂存区 -
git add <file-name>
将指定文件添加到暂存区 -
git add *.js
提交所有.js格式文件 -
git add -f <file-name>
强制添加 指定文件添加到暂存区
注:指的是文件的名称
4.3 将暂存区的文件恢复到工作区
-
git reset <file-name>
从暂存区恢复指定到工作区 -
git reset -- .
从暂存区恢复所有文件到工作区 -
git reset --hard ` 把暂存区的修改退回到工作区
4.4 查看工作区、暂存区的状态
git status
4.5 移除暂存区的修改
git rm --cached <file-name>
4.6 将缓存区文件提交到本地仓库
git commit <file-name> ... "相关的记录信息"
将暂缓区指定文件提交到本地仓库git commit -m "相关的记录信息"
将暂缓区的所有文件提交到本地仓库git commit -am "相关的记录信息"
跳过暂存区域直接提交更新并添加备注信息git commit --amend "相关的记录信息"
使用一次新的commit,替代上次提交
4.7 撤销commit提交
git revert HEAD^
撤销上上次的提交git revert HEAD
撤销最近的一个提交(创建了一个撤销上次提交(HEAD)的新提交)
4.8 查看日志
- 查看历史提交(commit)记录
- git log //查看历史commit记录注:空格向下翻页,b向上翻页,q退出
- git log --oneline //以简洁的一行显示,包含简洁哈希索引值
- git log --pretty=oneline //查看日志且并且显示版本
- git log --stat //显示每个commit中哪些文件被修改,分别添加或删除了多少行
-
git log --graph
查看分支合并图 -
git log --oneline --graph
查看版本线图
五、版本控制
5.1 回到指定哈希值对应的版本
git reset --hard <Hash>
注: 是版本的哈希值git reset --hard HEAD
强制工作区、暂存区、本地库为当前HEAD指针所在的版本
5.2 版本回退
git reset --hard HEAD~1
后退一个版本
注:~后面的数字表示回退多少个版本
六、GIT分支
6.1 查看分支
git branch
查看所有本地分支git branch -r
查看所有远程分支git branch -a
查看所有远程分支和本地分支git branch --merged
查看已经合并的分支
6.2 创建分支
git branch <branch-name>
注: 是分支的名称
6.3 切换分支
-
git checKout <branch-name>
切换到指定分支,并更新工作区 -
git checkout -
切换到上一个分支
6.4 创建并切换分支
git chechout -b <branch-name>
6.5 合并分支
git merge <branch-name>
6.6 删除分支
git branch -d <branch-name>
只能删除已经被当前分支合并的分支git branch -D <>branch-name>
强制删除分支
6.7 删除远程分支
git push origin --delete <remote-branch-name>
注: 远程分支名
七、远程仓库(团队合作)
7.1 克隆远程仓库
git clone <url>
7.2本地仓库与远程库进行关联
git remote add origin <url>
7.3 查看远程仓库地址别名
git remote -v
7.4 新建远程仓库地址别名
git remote add <alias> <url>
注: 远程仓库的别名
7.5 删除本地仓库中的远程仓库别名
git remote rm <alias>
7.6 重命名远程仓库地址别名
git remote rename <old-alias> <new-alias>
7.7 远程库的修改拉取到本地
git fetch <alias/url> <remote-branch-name>
抓取远程仓库的指定分支到本地,但没有合并git merge <alias-branch-name>
将抓取下来的远程的分支,跟当前所在分支进行合并git pull <alias/url> <remote-branch-name>
拉取到本地,并且与当前所在的分支进行合并
7.8 将本地的分支推送到远程仓库(先拉取在push)
git push <alias/url> <branch-name>
将本地的每个分支推送到远程仓库git push <alias/url> --force
强行推送 当前分支到远程仓库,即使有冲突git push <alias/url> --all
推送所有本地分支到远程仓库