原理图

git命令
混合开发项目操作流程
//从远程仓库克隆初始项目
git clone git@github.com:gyjtiancai/vuepress-front.git
//查看本地分支
git branch
//查看远程分支和本地分支
git branch -a
//创建自己开发的分支
git branch dev-gyj
//切换到自己的分支(查看和切换分支可简化为 git checkout -b dev-gyj )
git checkout dev-gyj
//查看文件修改状态
git status
//添加当前目录的所有文件的修改到暂存区
git add .
//提交暂存区的内容到本地仓库
git commit -m "提交信息"
//推送本地仓库的内容到远程仓库的dev-gyj分支 若没有该分支 则自动创建并推送
git push origin dev-gyj
//切换master主分支
git checkout master
//拉取master主分支最新代码(因为混合开发可能会有别人的修改)
git pull
//把自己分支的修改合并到master主分支
//(解决合并冲突,有时候混合开发人员修改同一个文件 可能会造成修改冲突)
git merge dev-gyj
//如果有冲突先解决冲突 最后重新git add commit push
//如果没有冲突 此时master主分支已经是最新的代码
git push
//切换到自己开发的分支
git checkout dev-gyj
//如果master主分支上有他人的修改 则合并到自己开发的分支 没有则继续开发
git merge master
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
常用命令
- 配置
//显示当前的Git配置
git config --list
//设置提交代码时的用户信息
git config --global user.name geyujie
git config --global user.email geyujie@qq.com
1
2
3
4
5
2
3
4
5
- 远程仓库
//查看当前项目的远程仓库
git remote -v
//为当前项目添加远程仓库
git remote add origin + //远程仓库地址
//为当前项目删除远程仓库
git remote rm origin //origin:远程仓库名称
//为当前项目切换远程仓库地址
git remote set-url origin + //远程仓库地址
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 分支
//列出所有本地分支
git branch
//列出所有本地分支和远程分支
git branch -a
//切换到指定分支,并更新工作区
git checkout dev-gyj
//新建一个分支,并切换到该分支
git checkout -b dev-gyj
//删除本地分支
git branch -d dev-gyj
//删除远程分支
git push origin --delete dev-gyj
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
- 查看信息
//找出该文件的历次修改中,有修改到关键字的commit
git log -S "关键字" -- "文件路径"
//显示有变更的文件
git status
//显示工作区与当前分支最新commit之间的差异
git diff HEAD
// 显示当前分支的版本历史
git log
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 代码提交
//添加当前目录的所有文件的修改到暂存区
git add .
//提交暂存区的内容到本地仓库
git commit -m "提交信息"
1
2
3
4
2
3
4
- 撤销
//撤回暂存区的内容 不修改工作区
git reset
//撤回暂存区和工作区的内容,与上一次commit保持一致(慎用)
git reset --hard
//撤回暂存区和工作区的内容,与指定commit保持一致(慎用)
git reset --hard [commit]
1
2
3
4
5
6
2
3
4
5
6
- 标签
//列出已有的标签
git tag
//创建本地标签并推送至远程
git tag -a v1.0 -m "app version 1.0"
git push origin v1.0
//删除本地标签
git tag -d v1.0
//删除远程标签
git push origin --delete v1.0
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9