Git 常用命令
Git 是一个分布式的版本控制系统,是目前最先进的,几乎全网程序员都在用Git来进行版本管理。
Git 特点
- 分布式版本控制
- 非常方便的对比不同版本区别
- 多人协作可以快速检测是否有代码冲突
使用Git前配置
设置用户名
git config --global user.name "Your Name"
设置邮箱
git config --global user.email "email@example.com"
查看 Git 配置信息
git config --list
如果想要修改配置,则只需要重新执行 1 2 两条命令即可,这些配置只需要配置一次即可。
Git 命令
git init
: 初始化 , 生成 git 仓库git add
: 把文件添加到仓库(在暂存区)- 可以跟的值:file.xx 某一个文件
- . / -A 代表所有文件
git commit -m '提示提交的说明'
: 把文件提交到仓库(提交到版本库)git status
: 查看暂存区的工作状态git reset HEAD <file>
: 可以把暂存区的修改撤销掉(unstage),重新放回工作区git checkout -- file
: 可以丢弃工作区的修改,(可以把仓库中的文件下载到本地)git reset --hard HEAD^
: 版本回退- 一个”^”代表一层版本
git log
: 查看提交记录- 运行后鼠标会悬挂,输入字母’q’退出
git reflog
: 查看所有历史记录git rm
: 删除命令
Git 分支
- 不在源代码上直接修改,可以开启具体相同代码的分支,在分支上进行开发,开发完成后再合并到主分支即可
git checkout -b name
: 开启一个分支,并切换到这个分支下git branch name
: 开启一个分支git checkout name
: 切换分支git branch
: 查看分支 (分支前有*符号就是当前所在分支)git branch -a
: 查看所有分支,包括远程git merge
: 分支合并,合并指定分支到当前分支- 分支合并时的冲突 解决方案:1. 保存其中某一份 1. 全保存
git log --graph
可以看到分支合并图 git branch -d name
删除分支(记得不要在当前分支下删,会删除失败)git checkout -b [本地分支名] [origin/远程分支名]
从远程仓库拉本地不存在的分支
标签
git tag vx.x.x
: 创建git tag
: 查看标签git show <tagname>
: 查看标签详情
远程仓库
- 克隆功能
git clone git@gitee.com:gavinzhulei/vue-form-making.git
- 本地已经有clone下来的仓库了,需要关联远程仓库(比如公司的仓库)
git remote add origin https://gitee.com/numbrun/vuepress-blog.git
- origin 是默认,关联多个仓库的时候可以替换别的名字,比如 company
git remote -v
查看远程仓库地址- 推送功能 本地向远程仓库推送代码:
git push oigin develop
- 拉取功能 从远程仓库把代码下载到本地 :
git pull company develop
- 标签
git push origin <tagname>
: 向远程仓库推送 taggit push origin --tags
: 一次性推送全部尚未推送到远程的本地标签git tag -d name
: 删除本地 taggit push origin :refs/tags/name To github.com:michaelliao/learngit.git
:删除远程仓库中的 tag
Git Stash
git stash save
能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。git stash pop
将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。git stash list
所有保存的记录列表git stash clear
删除所有保存
我的 Git 提交名模式
第一种
远程仓库有两个,一个是自己的,一个是公司的,公司的仓库是fork来的,所以你的远程仓库其实有两个 注:可通过
git remote -v
查看
步骤如下
这种的相对比较规范性,因为主仓库的commit会更精华简介性,因为你在本地可能有无数次的commit,会导致仓库臃肿
第二种
远程仓库只有一个,主要通过分支管理,有一个主分支,如dev,还有其他的分支,包括属于自己的分支名,或以某个功能开发模块命名的分支等等 步骤如下
常见问题
- 远程新建一个分支 production-type-set ,本地没有 需要切到production-type-set 这时候直接切
git checkout production-type-set
是会报错的
解决方法
- 首先我们看一下远程分支情况:
git branch -a
- 在这里没有看到我们想要的分支,先获取所有分支
git fetch
- 这时在切到
git checkout production-type-set
即可