Bootstrap

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

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

目录

一、Git操作命令

1. git 版本库操作

2.git 配置

git 日志操作

3.git 还原操作

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: 查看远程仓库 包含 “关键字”字符串的分支信息

;