原理图

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
常用命令
  • 配置
//显示当前的Git配置
git config --list
//设置提交代码时的用户信息
git config --global user.name geyujie
git config --global user.email geyujie@qq.com
1
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
  • 分支
//列出所有本地分支
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
  • 查看信息
//找出该文件的历次修改中,有修改到关键字的commit
git log -S "关键字" -- "文件路径"
//显示有变更的文件
git status
//显示工作区与当前分支最新commit之间的差异
git diff HEAD
// 显示当前分支的版本历史
git log
1
2
3
4
5
6
7
8
  • 代码提交
//添加当前目录的所有文件的修改到暂存区
git add .
//提交暂存区的内容到本地仓库
git commit -m "提交信息" 
1
2
3
4
  • 撤销
//撤回暂存区的内容 不修改工作区
git reset
//撤回暂存区和工作区的内容,与上一次commit保持一致(慎用)
git reset --hard
//撤回暂存区和工作区的内容,与指定commit保持一致(慎用)
git reset --hard [commit]
1
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