美文网首页
git常用命令操作

git常用命令操作

作者: 怦然心动_a40c | 来源:发表于2020-11-30 22:37 被阅读0次

项目中我们经常用到git命令来进行项目管理,下面整理一些git的常用命令,基本上我都是自己试一个写一个,有很少部分没去试,有没写到的或错的后续会继续更新修改。

常用命令

  1. 初始化git仓库,会生成一个git文件,用来记录你的git操作
git init
  1. 克隆远程库,将远程库克隆到本地
git clone git地址
  1. 关联远程库
git remote add origin "仓库地址";
  1. git查看远程仓库地址命令
git remote -v
  1. 上传到暂存区,
// 上传某个文件
git add  文件名
// 上传所有文件
git add . / git add *(常用的,一般通过配合(.gitignore)文件忽略部分不必上传的依赖文件
//查看暂存区文件
git ls-files  

git add 撤销
//撤销git add 某个文件
git reset HEAD 文件名
git reset HEAD(撤回所有git add文件)
  1. 提交到本地库(目前还没提交到远程,为待上传状态)
git commit -m '提交说明'

commit 撤销
//1 把最后的commit切回已经git add状态
git reset --soft HEAD"^"
//2 把最后的commit切回还没git add状态,保留修改
git reset HEAD^
add + commit:git commit -am '提交说明' 
  1. 提交到远程库
//首次可以-u与当前远程库进行关联,后面提交可以简写
git push -u  origin 分支名
//例如
git push -u  origin master(主分支)
后面可以
git push origin 分支名 或者直接 git push
  1. 修改上一次提交说明文字
git commit --amend -m 'new Name'
git push
  1. 拉取远程最新更改
git pull
  1. 撤销文件修改,取消所有文件修改
//撤销部分文件
git checkout --  文件名
//撤销全部文件
git checkout -- .
  1. 重命名文件和删除文件(已被git管理的文件才可以哦)
重命名:
git mv 原文件名1  文件名2
例如:
git mv index.html index1.html //把index.html修改为index1.html
删除:
rm 文件名  //不要误删哦,删了可以git reset HEAD

分支管理 branch

查看所有分支:git branch -a
查看当前分支:git branch
查看本地分支对接远程库:git branch -v /  git branch -vv
创建分支:git branch 分支名
切换分支:git checkout 分支名 或者git switch 分支名
创建+切换分支:git checkout -b 分支名 或者 git switch -c 分支名
删除分支:git branch -d 分支名 做此操作前必须先切到其他分支,不可在当前分支做删除操作
删除远程分支:git push origin '空格':分支名  ===  git push origin -d 分支名
删除操作 例如: git push origin '' :test
修改分支名name1->name2:git branch -m 原名 修改名
提交本地分支到远程(当远程没有当前本地分支时可以使用):git push --set-upstream origin 分支名 //该命令会在远程新增一个和本地同名分支,并同步本地文件
拉取远程分支并在本地创建相同分支名 : git checkout -b 分支名 origin/分支名
<注意:当新建远程分支后,须在本地先git pull一下,检出远程新增分支,然后使用上述命令拉取新建远程分支到本地,最好取相同分支名>

状态及日志查看 log & status

查看当前版本库状态: git status
日志查看 git log 查看完按q键退出(quit嘛)
1. 直接在log命令之后,加 -n参数,n表示你要输出的数量: git log - 2 
2. 简化git log的默认的输出,仅输出commit hash 前7个字符串和提交说明: git log --oneline
3. 在git log 的基础上输出文件增删改的统计数据: git log --stat
4. 控制输出每个commit具体修改的内容,输出的形式以diff的形式给出: git log -p || git show(默认HEAD)
5. 这个命令用来输出汇总信息,以作者进行分类: git shortlog
git shortlog -s:用来统计每个作者的提交数量。
git shortlog -n:用来对统计的量进行倒序排列。
6. 加--author用来过滤commit,限定输出给定的用户:git log --author="作者名"
7. 限定指定日期范围的log: git log --after(或者before) '11-30-2020'
8. 控制是否显示merge的commit: git log --merges || git log --no-merges
9. git log输出时,显示对应commit所属的branch和tag信息:  git log --decorate --oneline
10. 历史提交并列显示:git log --pretty=oneline
11. 查看git详细操作日志 git reflog 
12. 可以看到分支合并图更详细:git log --graph
13. 可以看到分支合并图更简洁:git log --graph --pretty=oneline --abbrev-commit
14. 查看远端分支:git log origin/master(分支名)

复制转移提交:cherry-pick

阮一峰 cherry-pick详细教程

一、基本用法
git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。
git cherry-pick <commitHash> || master
假如你需要在dev分支做了bug修改, 代码改完了也commit了 ,
然后发现写错分支了,我****,你想把master上的代码移到dev上,
这时你就可以使用cherry-pick来进行操作,在dev分支执行git cherry-pick  master (hash也可以),
这时master的提交代码就过来了。(master已提交不会被清掉哦)
Cherry pick 支持一次转移多个提交:git cherry-pick hash1 hash2
Cherry pick 转移一系列的连续提交:git cherry-pick hash1^..hash5
例如:
git cherry-pick f5674^..0a7a7
假如不带这个^,则f5674不会被转过去,注意要按提交顺写,前些早提交,后写后提交。
其他配置项及代码冲突请移步到阮一峰大佬那去看,更详细。

变基:rebase

定义:rebase(变基)改变当前分支的基础分支版本(父版本)

注意:变基会改变提交历史,建议使用这个方法时 ,只在本地操作,不要推送到远程,并且不要在master分支执行。
和cherry-pick区别:由A转到B:
cherry-pick:在B中操作
rebase:在A中操作

在A分支中
执行git rebase B,会将B中的修改提交拉取到A中,并保留一个提交信息,
提交视图一条直线,更加清晰,不会像merge那样提交视图错乱,但是会缺失提交信息。不熟的话需慎用!!!搞项目还是merge稳妥点
解决冲突:修改文件(vi 文件名)-》git add .-> git rebase continue(可能执行多次)
忽略冲突:(放弃所在分支修改,使用其他分支):git rebase --skip(可能执行多次)
取消rebase:git rebase --abort

可以参考这篇文章的讲解:GIT变基

合并 merge

merge:合并分支
合并某分支到当前分支:git merge 某分支名 注意:(在当前分支做合并其他操作)
把b合并到a, 在a分支:git merge b 
不会丢失合并信息:git merge --no--ff
git merge --no-ff -m "merge with no-ff" 分支名

版本回退 reset

commit之后如果没有提交远程可以回退当前版本
git reset --hard HEAD 
2次回退:git reset --hard HEAD^^
50次回退:git reset --hard HEAD~50
回退到指定版本:git reset --hard commit_id

临时保存工作现场 stash

使用场景:当你在A分支开发时,发现B分支有一个bug需要紧急处理,你此时还没开发完毕,不想提交代码,你也不能切换到B分支,因为修改没有提交,这时就可以用git stash save "保存说明",先把修改存到缓存中,然后就可以切到B分支做处理。做完后回到A分支,继续你的开发git stash list 查看保存列表,然后git stash pop(默认取出第一条,并从列表中删除这条缓存),或者 git stash pop stash@{n},n为数字。或者git stash apply stash(默认取出第一条,不从列表中删除这条缓存,最好回来了就删除吧。省的以后开发影响)

stash:保存现场(临时保存)
1:建议:在功能未开发完成时,不要commit
2:规定:修改文件,在没有commit之前,不可切换分支(两个分支在同一时刻,是可以切换的)
如果还没有将某一个功能开发完毕;需要切换分支去修改bug,可以git stash;
保存现场:git stash
查看现场:git stash list
恢复现场:git stahs pop(将原来保存历史删除,用于还原内容)
恢复最近一次的现场:git stash apply(不删除保存历史,用于还原内容)
恢复最近一次的现场:git stash apply stash@{num}(num=1,2,3,4)
手工删除:git stash drop stash@{2}//删除最近第二次
清空stash:git stash clear

标签: tag

命令git tag 标签名 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
可以指定标签信息;命令git tag -a 标签名 -m "线上版本..." {创建新对象}
可以查看所有标签:命令git tag
删除标签:git tag -d v1.0
删除远程标签:git push origin '空格':refs/tags/v1.0
查询标签:git tag -l v1.0
查询标签:git tag -l 'v*'(模糊查询)
推送标签到远程:git push origin v1.0
推送全部本地标签到远程:git push origin --tags

查看修改、版本差异: diff

比较本地库和工作区差异:git diff
比较a,b分支差异:git diff a b:|| git diff -u a b
比较两个版本差异:git diff commit_id1 commit_id2
比较本地库和暂存区差异:git diff --cached commitID
比较最新本地库和暂存区差异:git diff --cached HEAD
查看两个版本文件的修改:git diff commit_id1 commit_id2 文件名
例如:
git diff commit_id1 commit_id2 /pages/detail/index.html

多人管理

多人管理;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
要查看远程库的信息,用git remote:
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;

本地--》远程
第一次提交:git push -u origin/master
建立本地分支和远程分支的关联,使用git push --set-upstream  origin 分支名
把当前分支指向新远程分支bug2: git push origin HEAD:bug2

远程--》本地
在本地创建和远程分支对应的分支,
使用git checkout -b 分支名 origin 分支名,本地和远程分支的名称最好一致;
git checkout -b dev origin dev
git checkout --track origin dev
查看无效分支:git remote prune origin --dry-run
删除无效分支:git remote prune origin
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
显示远程分支:git remote show origin
显示远程分支:git remote show

追责命令:git blame index.html
查看index.html的所有提交commitiD 和每行作者
常用分支名:
生产分支:master
开发分支:develop
测试分支:test
bug分支:bugFix

差不多了,工作中能用到也就那几个,如果有问题呢,可以评论留言,我来修改。其实vsode不用命令就可以直接操作了,推荐两个好用的vscode插件,GitHistory和GitLens,都不错,推荐使用
后续有啥好用的没写到,也可以下方提示一下,也要学习嘛,别掖着哈~ 谢啦~

相关文章

  • git常用命令

    初始配置 常用命令 git操作原则 vim基本操作

  • 真 git 操作大全 不会就看

    git 常用命令git 远程操作git 撤销操作 推酷git大全 react router4 中文文档 koa 简...

  • Git-基础1

    常用命令 参考 Git远程操作详解 和 Git教程 which -a git # 查看所有版本的 gitgit -...

  • GIT 版本管理 常用命令

    Git 常用命令流程图 Git常用操作命令: 初始化创建:$ git init //检出仓库:$ git clon...

  • Git常用命令和常见问题

    git官网 一、git常用命令 1.常用命令 2.分支 3.远程操作 4.撤回操作 5.对比工作区,暂存区,仓库的...

  • Git 命令

    注: git 所有的操作都是基于本地分支 常用命令 git init 初始化版本库 git add . 添加文件到...

  • git 常用命令汇总

    一、git常用命令: 二、团队协作git操作流程: 三、git工作流 更多咨询请关注:1、Git 汇总2、VUE3...

  • 1.git 常用命令

    1.git命令操作 2.git 常用命令 a 新创分支并上传至git b 更新最新代码到本地 git pull c...

  • Git学习资料

    思维导图 常用命令 常用操作执行命令创建分支git branch BranchName删除分支git branch...

  • git 命令

    Git常用命令 一、本地操作: 1.其它 git init:初始化本地库 git status:查看工作区、暂存区...

网友评论

      本文标题:git常用命令操作

      本文链接:https://www.haomeiwen.com/subject/sdjrwktx.html