美文网首页
【Git笔记】Git常用命令

【Git笔记】Git常用命令

作者: SevenDream | 来源:发表于2023-04-19 09:47 被阅读0次

    常用

    关于Git配置

    # 查看当前git环境详细配置
    git config -l
    # 查看系统config 配置文件在git安装目录/etc/gitconfig
    git config --system --list
    # 查看当前用户配置 配置文件在~/.gitconfig
    git config --global --list
    # 配置文件在当前项目的/.git/config
    git config --local --list
    # 查看所有的配置以及它们所在的文件
    git config --list --show-origin
    # 查看当前分支(详细)
    git config --lis
    git config [--local][--global][--system] section.key value
    # 设置全局名称
    git config --global user.name "Your Name"
    # 设置全局邮箱
    git config --global user.email "email@example.com"
    # 设置当前项目的用户名
    git config --local user.name xxxx 
    #  配置当前用户的编码项,可以解决中文编码问题
    git config --global core.quotepath false
    #  配置当前项目不忽略文件大小写,git默认忽略文件名的大小写,这点值得注意
    git config --local core.ignorecase false 
    # 设置git默认文本编辑器(启动路径文本)
    git config --global core.editor "[path]"
    # 设置git默认文本编辑器(某个内置编辑器)
    git config --global core.editor emacs\vim
    

    Git初始化与克隆

    # 在当前目录新建一个仓库
    git init
    # 在一个目录下新建本地仓库
    git init [project-name] 
    # 克隆一个远程仓库
    git clone [url]
    # 克隆一个远程仓库到某个目录
    git clone [url] [dir-name]
    

    添加到暂存区修改与提交

    # 查看状态
    git status
    # 查看变更内容
    git diff
    # 从工作区添加指定文件到暂存区
    git add [file-name1] [file-name2] ...
    # 添加指定目录到暂存区,包括子目录
    git add [directory]
    # 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件
    git add .
    # u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件
    git add -u .
    # A指all,将工作区被修改、被删除、新增的文件都提交到暂存区
    git add -A .
    # 文件改名
    git mv [oldname] [newname]
    # 删除文件
    git rm [file]
    # 停止跟踪文件单不删除
    git rm --cached [file]
    # 递归删除
    git rm -r *  
    # 提交
    git commit -m 'xxx'        
    # 修改commit信息 本次
    git commit --amend
    # 合并上一次提交(用于反复修改)
    git commit --amend -m 'xxx'
     # 将add和commit合为一步
    git commit -am 'xxx'            
    

    查看提交历史

    # 查看提交历史
    git log
    # 显示x行日志 -x为x行
    git log -[number]
    # 查看指定文件的提交历史
    git log -p [file]
    # 以列表的方式查看指定文件的提交历史
    git blame [file]
    # 显示提交日志及相关变动文件
    git log --stat
    

    撤销

    # 撤销工作目录中所有未提交文件的修改内容
    git reset --hard HEAD
    # 撤销置顶的未提交文件的修改内容
    git checkout HEAD [file]
    # 撤销指定的提交
    git revert [commit]
    

    比对

    # 显示所有未添加至index的变更
    git diff
    # 显示所有已添加index但还未commit的变更
    git diff --cached
    # 比较与上一个版本的差异
    git diff HEAD^
    # 比较与HEAD版本lib目录的差异
    git diff HEAD -- ./lib
     # 比较远程分支master上有本地分支master上没有的
    git diff origin/master..master 
     # 只显示差异的文件,不显示具体内容
    git diff origin/master..master --stat
    

    远程库

    # 查看项目远程仓库
    git remote -v
    # 添加远程仓库地址
    git remote add origin [url]
    # 删除远程仓库源
    git remote remove origin 
    # 获取所有远程分支(不更新本地分支,另需merge)
    git fetch
    # 获取所有原创分支并清除服务器上已删掉的分支
    git fetch --prune
    # 列出所有本地标签
    git tag
    # 基于最新提交常见标签
    git tag [tagname]
    # 删除标签
    git tag -d [tagname]
    # -a : 理解为 annotated 的首字符,表示 附注标签
    # -m : 指定附注信息
    git tag -a [tagname] -m xxxxxx
    git tag -a [tagname] [version] -m xxxxx
    # 推送标签至远程服务器
    git push origin tag [tagname]
    

    分支

    # 显示本地分支
    git branch
    # 显示包含提交50089的分支
    git branch --contains [name]
    # 显示所有分支
    git branch -a
    # 删除本地新建分支
    git branch -d [name]
    # 显示所有原创分支
    git branch -r 
    # 显示所有已合并到当前分支的分支
    git branch --merged
    # 显示所有未合并到当前分支的分支
    git branch --no-merged 
    # 本地分支改名
    git branch -m [old] [new]  
    # 从当前分支创建新分支并检出
    git checkout -b [name]
    # 从当前分支创建新分支并检出
    git checkout -b [old] [new]
     # 检出已存在的分支
    git checkout [name]          
    # 检出远程分支并创建本地跟踪分支
    git checkout --track [name]
    # 检出版本
    git checkout v2.0
    # 从远程分支develop创建新本地分支devel并检出
    git checkout -b devel origin/develop 
    # 检出head版本的README文件(可用于修改错误回退)
    git checkout -- README 
    # 合并远程master分支至当前分支
    git merge [name]
    # 合并提交的修改
    git cherry-pick [name]
    # 将当前分支push到远程master分支
    git push origin [name]    
    # 把所有tag推送到远程仓库
    git push --tags
      # 删除分支(本分支修改已合并到其他分支)
    git branch -d [name] 
    # 强制删除分支
    git branch -D [name]
    

    推送/拉取

    git pull 
    # git允许拉取不关联的历史代码
    git pull origin xxxx --allow-unrelated-histories
    # git允许推送不关联的历史代码
    git push origin xxxx --allow-unrelated-histories
    

    Log 美化

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

    查看个人代码量

    [email] 替换成你的提交与邮箱

    git log --author="[email]" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -;
    

    查看整个项目代码量

    git log  --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }';
    

    相关文章

      网友评论

          本文标题:【Git笔记】Git常用命令

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