实用工具系列-git常用命令

作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(WPS二次开发QQ群:250325397),摸鱼吹牛嗨起来!

目录

一、Git操作命令

[1. git 版本库操作](#1. git 版本库操作)

[2.git 配置](#2.git 配置)

[git 日志操作](#git 日志操作)

[3.git 还原操作](#3.git 还原操作)

[4. 分支操作](#4. 分支操作)

二、实践应用场景

查看分支创建者

根据关键字搜索关联分支----使用"grep"进行过滤


一、Git操作命令

1. git 版本库操作


  • git init: 初始化仓库
  • git clone https://github.com/xx/xx.git : 克隆代码
  • git remote add origin https://github.com/xx/xx.git 设置远程git路径
  • git remote set-url origin <url> : 修改仓库地址
  • git remote -v : 查看远程仓库地址
  • git push -u origin master(分支) : 上传代码到远程仓库
  • git push : 提交所有
  • git fetch : 拉取远程仓库,拉取远程仓库所有分支信息
  • git fetch origin <分支名>: 拉取远程仓库特定分支信息
  • git pull : 拉取所有

暂存区

  • git add . :添加全部文件,将全部文件添加到暂存区, 相当于GUI的add操作
  • git add -u: 更新提交记录(本地)
  • git reset HEAD test.txt:暂存区撤销,撤销添加到暂存区的文件
  • git add file.txt file2.text: 添加一个和多个文件,用空格分开文件名
  • git commit - m "初始化提交" : 提交命令
  • git commit --amend : 修改提交说明
  • git cherry-pick <commitId1><commitID2>将指定的提交<commitId> 合并到当前分支, 会产生一个新的的提交记录 git cherry-pick 教程 - 阮一峰的网络日志 pick教程
  • git cherry-pick <branchName>: 合并分支的最新(最近一次)提交
  • git diff HEAD -- git01.txt :与版本库内容进行比较"----":表示变动前的文件,"+++":变动后的文件, 变动的位置用两个@作为起首和结束
  • git status : 查看状态,可以查看所有文件变化
  • git -version: 查看git版本,看git是否安装成功

2.git 配置


  • git config --global user.name 'xx' : 配置一个全局的用户(xx)
  • git config --global --repleace-all user.name "xx": 替换已经设置了用户名
  • git config --global user.email 'xxx' : 配置一个全局的邮箱(xxx)
  • git config --global --list: 查看所有的配置,可以看到的用户名,邮箱配置
  • git config --add --local user.name "xx" :设置当前仓库的用户名
  • git config --add --local user.email "xxx" : 设置当前仓库的邮箱
  • git config --local --list : 查看当前仓库的用户名和邮箱
  • git rm --cached test.txt: 撤销误提交的test.txt文件
  • git rm file.txt : 删除文件,删除file.txt文件
  • git mv file1.txt file2.txt : 重命名,将file1.txt 重命名为file2.txt
  • git mv file.txt home/file.txt :将文件移动到文件夹home下

git 日志操作

  • git log: 查看提交记录,查看所有人的提交记录
  • git log --oneline :查看简写的log日志
  • git log --author="用户名' : 查看单个人提交记录, 没有任何显示,这说明没有这个人或提交记录//文件有变化的时候,如何查看文件的前后变化
  • git log --pertty=oneline home/home.html : 查看文件变化的id(commit id)
  • git log --graph --pertty=oneline : 查看分支合并图
  • git log --oneline --graph : 查看版本路线
  • git log -p home/demo.html : 查看文件具体修改的内容git show 提交id(commit id): 显示谁提交的,修改了哪些内容

3.git 还原操作

//操作失误的情况下,如何一键还原git diff : 找到不同git checkout -- home/home.html : 将文件回到上一次状态,(还原到上一次提交的状态),未实现文件追踪的时候git checkout 版本号 -- demo.html : 将指定文件回退到指定版本

git reset

  • git reset HEAD home/home.html : 撤销追踪,已经实现了文件追踪,想回到上次提交的状态//回到上一版本,或者指定
  • git reset --hard HEAD^ : 一个尖括号表示回到上一个版本,HEAD^^:回退到上上版本,有几个尖括号代表回退几个版
  • git reset --hard 版本id :回退到指定版本
  • git reset --hard: 重置head 和branch的时候,重置工作区 + 暂存区 会覆盖本地所有修改
  • git reset --soft: 重置HEAD和Branch的时候,保留工作区 + 暂存区, 新修改添加到暂存区
  • git reset --mixed: 保留工作区 + 清空暂存区, 所有修改都放到工作区

git revert

git - 在恢复后的命令栏中,git显示( master|REVERTING )你在revert中,可以执行以下任一操作:

  • git revert --continue / --quit / --abort--continue 使用.git/sequencer中的信息继续进行中的操作。可用于在解决失败的cherry pick或revert中的冲突后继续。--quit 忽略正在进行的当前操作,可用于在失败的cherry pick或revert后,清除sequencer状态。--abort 取消操作并返回序列前状态。

git bash :进入某个目录:$ cd /f/gitlib/gitdemo 表示进入:F:\gitlib\gitdemo

git restore

  • git restore 文件名: 撤销某个文件修改
  • git resore app/test.java //撤销某个文件修改

//标签管理git tag v1.0 : 创建标签v1.0 ,默认增加到最新的一次commit上面git tag : 查看taggit tag v0.5 commitID : 给指定的提交增加tag v0.5git tag -d tagName : 删除标签

4. 分支操作

  • git branch branchName : 创建分支git branch : 查看分支,*代表当前分支在哪个分支, 顺序安装首字母的顺序排序,并不是创建时间
  • git branch --all/-a: 查看所有分支,本地分支和远程分支,remotes/origin/ xxx 为远程分支
  • git reflog show --date=iso <branchName> : 查看分支创建时间
  • git reflog --date=local --all :查看全部分支创建时间
  • git push origin branch_name: 推送本地分支到远程(远程没有分支,则创建分支)
  • git push --set-upstream origin master :
  • git pull origin master : 拉取远程分支代码(新拉取、更新)
  • git pull :拉取所有远程分支
  • git fetch origin master: 拉取远程分支Head新,这样本地就可以找到分支信息
  • git checkout -b local_branch origin/remote_branch: 拉取远程指定分支并在本地创建分支,创建并关联远程的分支
  • git chekcout branchName : 切换到具体的分支
  • git branch -d branchName : 删除分支,不能删除当前分支, 如果当前分支有提交的代码(commit)的情况, 不能删除
  • git branch -D branchName : 强制删除本地分支
  • git push origin --delete <branch_name> :删除远程分支
  • git push origin : remote_branch: 删除远程分支(本地分支还在保留)
  • git checkout -b branchName : 创建分支并切换到创建的分支: 创建+切换//合并分支: 先要切换到要合并的分支,然后执行合并命令
  • git branch -m 旧名字 新名字 : 本地分支更名
  • git branch -m 旧名字 新名字
  • git diff branch1 branch2: 比较分支差异
  • git merge branchName: 将branchName分支代码合并到当前分支//分支冲突

//方法1

  • git merge --abort :只保留当前分支修改,忽略其它分支合并的内容(冲突内容)//方法2, 手动修改, + git add . + git commit + INSERT编辑中输入变更的说明,wq退出,然后,git commit -m git branch -av : 查看当前分支与远程分支的关系 git rebase: 合并分支另一种方法,Rebase 实际上就是取出一系列提交记录,"复制"它们,然后在另一个地方逐个的放下去。Rebase的优势是可以创造更线性的提交历史比如在bugFix分支上操作:git rebase dev : 相当于将bugFix的修改合并到dev分支上

如果想看 HEAD 指向,可以通过 cat .git/HEAD 查看, 如果 HEAD 指向的是一个引用,还可以用 git symbolic-ref HEAD 查看它的指向。但是该程序不支持这两个命令)

github扩展google访问助手,访问google应用商店Octotree插件

Enhanced gitHub 插件可以查看单个文件的大小,可以直接下载单个文件

gitZip for github插件可以直接下载某个文件夹: 双击出现下载图标

一些恢复操作(能救命的)git stash clear的恢复和找回第一步:

git log --graph --oneline --decorate ( git fsck --no-reflog \| awk '/dangling commit/ {print 3}' )

第二步:git stash apply commitId -------找On前面的,如上图标注的

参考:git stash clear的恢复和找回_恢复 stash clear-CSDN博客

git忽略已经添加版本控制的文件今天使用git做maven项目的版本控制,刚开始搭建项目后,把所有文件全部提交了。已经提交的文件,gitignore中后配置也无效了。所以使用以下命令来操作,操作后要提交哦。1.执行 git rm -r -n --cached "target/" 展示要删除的文件预览列表2.执行 git rm -r --cached "target/" 删除文件的命令

二、实践应用场景

查看分支创建者

git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' | sort -k5n -k2M -k3n -k4n |grep "关键字"

根据关键字搜索关联分支----使用"grep"进行过滤

eg: 查看远程仓库 包含 "关键字"字符串的分支信息

相关推荐
QYResearch10 分钟前
2025年全球移动变电站市场占有率及行业竞争格局分析报告
大数据
字节跳动数据平台12 分钟前
为何底层数据湖决定了 AI Agent 的上限?
大数据
QYResearch13 分钟前
自主机器人扫雪机行业现状与分析
大数据
Jammingpro1 小时前
【Git版本控制】Git初识、安装、仓库初始化与仓库配置(含git init、git config与配置无法取消问题)
java·git·elasticsearch
下位子1 小时前
『AI 编程』用 Codex 开发识字小帮手应用
android·openai·ai编程
Zender Han1 小时前
Flutter 实现人脸检测 — 使用 google_mlkit_face_detection
android·flutter·ios
君逸臣劳1 小时前
玩Android Flutter版本,通过项目了解Flutter项目快速搭建开发
android·flutter
叫我龙翔2 小时前
【MySQL】从零开始了解数据库开发 --- 基本查询
android·mysql·数据库开发
2501_916008892 小时前
iOS 26 性能分析深度指南 包含帧率、渲染、资源瓶颈与 KeyMob 协助策略
android·macos·ios·小程序·uni-app·cocoa·iphone
撩得Android一次心动4 小时前
Android adb 基础使用指南
android·adb