git常用命令大全

懒散的作者
2021-01-14 / 1 评论 / 710 阅读 / 正在检测是否收录...

基本概念

版本库.git文件

当我们使用git管理文件时,一般它会多出一个.git文件,我们将称为版本库

工作区

本地项目存放文件的位置

暂存区

顾名思义就是暂时存放文件的地方,是通过git add 命令将工作区的文件添加到缓冲区。

本地仓库

通常情况下,我们使用git commit 命令可以将暂存区的文件添加到本地仓库

远程仓库

举个例子,当我们使用GItHub托管我们项目时,它就是一个远程仓库。


git文件状态

通过git status

  • untracked : 在暂存区没有该文件
  • modified : 修改改文件
  • staged 使用 git add 暂存

分支管理规范

master分支

主分支,用于部署生产环境的分支,确保稳定性。
master分支一般由develop以及hotfix分支合并,任何情况下不能直接修改

develop分支

develop为开发分支,通常情况下,保存最新完成以及bug修复后的代码

开发新功能时,feature分支都是基于develop分支下创建的

feature分支

开发新功能,基于上以develop为基础创建feature分支

分支命令 : feature/开头的为特性分支,命令规则: feature/user_module 、 feature/cart_module

release分支

release为预上线分支,发布提测阶段,会release分支代码为基准提测。

比如develop完善后准备上线,就release合并develop,检车下是否有问题,没问题就提测。【这个步骤可略过】

hotfix分支

线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支develop分支

分支命名:hotfix/开头的为修复分支,他的命名规则与feature分支类似。

小规模流程分支
  • 简单一点的话,其实可以只需要masterdevhotfix就即可。
  • master作为线上,dev作为开发并且测试环境, hotfix是修改bug/或者开发新功能。
  • hotfix完成了提交到devdev测试环境没问题,再把hotfix提交到master线上去。
  • 新bug或者新需求,再从master中检出分支。

常用命令

  1. 初始化新仓库 git init
  2. 克隆代码 git clone
  3. 克隆指定分支 git clone -b dev
  4. 查看状态 git status
  5. 提交单个文件 git add index.php
  6. 提交所有文件 git add -A
  7. 使用通配符提交 git add *.js
  8. 提交到仓库中 git commit -m '提示信息'
  9. 提交已经跟踪过的文件,不需要执行add git commit -a -m '提交信息'
  10. 删除版本库与项目目录中的文件 git rm index.php
  11. 只删除版本库中文件但保存项目目录中文件 git rm --cached index.php
  12. 修改最后一次提交 git commit --amend

创建版本库

git clone   //克隆远程仓库
git init    //初始化本地版本库

git fetch   //刷新远程分支(当远程创建,本地还没检索到使用)

配置命令

git config --list     //列出当前配置
git config --local --list   //列出Repository配置
git config --global --list  //列出全局配置
git config --system --list //列出系统配置


/**配置用户信息**/
//全局加global ,项目中配置去掉global
git config --global user.email "邮箱" //配置用户邮箱
git config --global user.namel "名字" //配置用户名

alias别名操作

git config --global alias.a add     //表示取a别名代表add 操作
git config --global alias.s status     //表示取s别名代表status 操作

或者去.gitconfig文件中配置alias取别名

工作区操作

git checkout -- [文件/目录所有内容]    //撤销工作区的内容

暂存区操作

git rm --cached xxx.php     //暂存区撤销到工作区(针对第一次入暂存区撤回)
git reset HEAD xx.php       //暂存区撤销到工作区 (针对已提交过commit,第二次后进入暂存区操作)

仓库管理操作

git commit -m '提交'    //提交仓库
git commit --amend      //提交到当前commit日志

git pull    //拉取远程库的内容[默认是推送当前分支同名]
git pull origin lmq //拉取远程库的lmq分支内容
git pull origin lmq:lmq     //拉取最新远程lmq分支到本地lmq分支

git push    //推送内容到远程 [默认是推送当前分支同名]
git push -f     //强制推送(针对合并的时候)
git push origin lmq //推送内容到远程库的lmq分支
git push --set-upstream origin lmq  //本地lmq分支关联远程分支并推送


git remote  add origin [仓库地址]   //添加远程仓库地址(本地关联远程)
git remote -v   //查看远程库
git mremote rm origin //删除远程

缓存(存储)区管理

git statsh          //当前代码缓存起来
git statsh list     //获取所有缓存标识

git stash apply     //恢复缓存区内容(缓存区标识存在)
git stash drop stash@{0} //删除缓存区某个标识(0-代表第一个)

git stash pop (恢复缓存区内容并且删除缓存区)

分支管理

git branch  //查看本地分支
git branch -r   //查看远程分支
git branch -a   //查看本地和远程分支

git checkout <branch-name>  //从当前分支,切换到其他分支
git checkout -b <branch-name>   //创建并切换新建分支
git branch -d <branch-name>     //删除本地分支(本地)
git branch -D <branch-name> //强制删除分支(提交记录并没合并过 -d是删除不了 )

git merge <branch-name>         //当前分支与指定分支合并
git merge --abort               //合并冲突时(merging),取消git合并分支
git branch --merged             //查看哪些分支已经合并到当前分支
git branch --no-merged          //查看哪些分支没有合并到当前分支

git branch -v               //查看各个分支最后一个提交对象信息
git push origin --delete <branch>     //删除远程分支
git branch -m <old-name> <new-name> //重命名分支

git checkout -b 本地分支 origin/远程分支    //拉取远程分支并创建本地分支




git rebase <branch-name>    //衍合指定分支记录到当前分支(不产生分支合并-推荐用)
git rebase --abort  //衍合冲突(rebase)的时候,取消衍合

查看历史记录

git log             //查看提交的日志
git log -1          //查看最近一次提交
git log -p          //查看每一次的变动信息
git log --oneline      //查看日志(简短展示)
git log --oneline -p    //查看文件变动信息(简短展示)
git log --name-only     //查看哪些文件发生了变化?
git log --name-status   //查看文件哪些内容弄变化?(add/save)

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset' --abbrev-commit   //美化后

版本回滚

  • --mixed: 暂存区清空,工作区保留 (不删除工作空间改动代码,撤销commit ,并撤销git add 操作)
  • --soft: 暂存区保留,工作区保留 (不删除工作空间改动代码,撤销commit,不撤销git add)
  • --hard : 暂存区清空,工作区清空 (删除工作空间改动代码,撤销commit ,撤销git add)
//--hard : 回退全部,--mixed:回退部分,包含HEAD ,index, --soft:只回退HEAD
git reset --(soft|mixed|hard) <HEAD ~(num)> |  commit ID


git reset --hard HEAD^ 回退到上个版本
git reset HEAD~1        //撤销前一次的操作
git reset --hard HEAD~3  //回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commitId   //退到/进到,指定commit ,使用这个,需要强推远程 git push origin HEAD --force

git revert HEAD //  撤销前一次 commit
git revert HEAD^    //撤销前前一次 commit
git revert commitId    //撤销指定的版本,撤销也会作为一次提交进行保存

git reflog  //查看你每一次对仓库的操作

revert与reset不同 revert不会舍弃原来的提交记录,而是生成了一次新的提交。

reset是撤回到某个指定的版本,而revert则是将某个指定的版本撤销,也就是撤回到指定版本之前的一个版本上。

标签管理

git tag     //列出本地所有标签
git tag <tag-name>  //基于最新提交创建标签
git tag -d <tag-name>   //删除标签

其他命令

//生成zip压缩包
git archive master --prefix='lmq' --forma=zip > lmq.zip   //压缩master分支的内容 
0

评论 (1)

取消
  1. 头像
    物是人非
    Windows 7 · Google Chrome

    牛逼牛逼

    回复