zoukankan      html  css  js  c++  java
  • Git 命令大全,Git命令汇总,Git命令说明

    一、配置操作

    # 配置仓库 | 用户 | 系统级别的用户名
    git config --user | --global | --system user.name 'username'
    
    # 配置仓库 | 用户 | 系统级别的邮箱
    git config --user | --global | --system user.email 'user@example.com'
    
    # 查看所有的配置以及它们所在的文件
    git config --list --show-origin
    
    # 查看仓库 | 用户 | 系统级别配置
    git config --local | --global | --system -l
    
    # 编辑仓库 | 用户 | 系统级别配置
    git config --local | --global | --system -e
    
    # 添加一个仓库 | 用户 | 系统配置项
    git config --local | --global | --system --add user.name joshua317
    
    # 获取一个仓库 | 用户 | 系统配置项
    git config --local | --global | --system --get user.name
    
    # 移除一个仓库 | 用户 | 系统配置项
    git config --local | --global | --system --unset user.name
    

    二、基本操作

    # 初始化一个仓库
    git init
    
    # 创建一个祼仓库
    git init --bare project-name.git
    
    # 从指定地址克隆一个仓库
    git clone url
    
    # 克隆特定的标签
    git clone --branch <tag> <repo>
    
    # 浅克隆最近一次提交记录的给定仓库
    git clone -depth=1 <repo>
    
    # 克隆远程仓库的某个分支
    git clone -branch new_feature <repo>
    
    # 查看当前工作区状态
    git status
    
    # 将当前目录下的所有文件添加到暂存区
    git add .
    
    # 添加注释并提交
    git commit -m 'xxx'
    
    # 合并上一次提交(反复修改)
    git commit --amend -m 'xxx'
    
    # 将 add 和 commit 合并为一步
    git commit -am 'xxx'
    
    # 删除暂存中指定的文件
    git rm path/to/filename
    
    # 将本地与远程分支关联起来
    git remote add origin <user>@<host>:/path/to/repository/<project-name>.git
    
    # 关联分支到到远程仓库的master分支
    git push -u origin master
    
    # 设置让本地某个分支跟踪远程的某个分支
    git branch --set-upstream-to=origin/<branch> <branch>
    
    # 从暂存区将文件移除
    git rm --cached filename
    
    # 将文件彻底从暂存区放
    git checkout -- filename
    
    # 检出远程分支hotfix/fix-menu并创建本地跟踪分支
    git checkout --track hotfix/fix-menu
    
    # 显示进度列表
    git stash list
    
    # 给当前存储的修改起个名字
    git stash save <message>
    
    # 取出给定的暂存
    git stash apply stash@{X}
    
    # 将记录列表中取出的给定暂存记录删除
    git stash drop stash@{X} 
    

    三、分支操作

    # 显示本地分支
    git branch
    
    # 显示所有分支
    git branch -a
    
    # 删除未曾合并过的分支
    git branch -D
    
    # 删除已经合并过的分支
    git branch -d
    
    # 本地分支重命名
    git branch -m oldName newName
    
    # 删除远程分支
    git push --delete origin <branch-name>
    
    # 把本地分支与远程分支关联起来
    git branch --set-upstream-to origin/newName
    
    # 查看当前的本地分支与远程分支的关联关系
    git branch -v
    
    # 查看本地当前分支与远程某一分支的差异
    git diff origin/develop
    
    # 查看本地 master 分支与远程 master 分支的差异
    git diff master origin/master 
    

    四、合并操作

    # 将远程 master 分支合并到本地 master
    git merge origin/master
    
    # 将 develop 分支合并到当前分支(不使用 Fast-forward)
    git merge --no-ff develop
    
    # 用 mergetool 解决冲突
    git mergetool
    
    # 把 a 分支合入到当前分支,且为 merge 创建 commit
    git merge a
    
    # 把 a 分支合入到 b 分支,且为 merge 创建 commit
    git merge a b
    
    # 汇合提交:将之前的三次提交合并到一处(squash)
    git rebase -i HEAD~~~
    
    # 修改提交(edit)
    git rebase -i HEAD~3
    
    # 把当前分支基于 b 分支做 rebase,以便把 b 分支合入到当前分支
    git rebase b
    
    # 把当前分支基于 b 分支做 rebase,以便把 b 分支合入到 a 分支
    git rebase b a
    
    # 将其它分支上的合适提交挑选到当前分支
    git cherry-pick <commit-id> 
    

    五、标签操作

    # 查看所有标签
    git tag
    
    # 搜索某个标签
    git tag -l 'v1.1.*'
    
    # 新建某个标签
    git tag -a v1.1.2 -m "Project v1.1.2 Released"
    
    # 推送某个标签到远程
    git push origin v1.1.1
    
    # 推送所有标签到远程
    git push origin --tags
    
    # 查看某个标签的版本信息
    git show v1.0.2
    
    # 删除本地标签
    git tag -d v1.0.1
    
    # 删除远程标签
    git push origin --delete tag <tag-name>
    
    # 删除远程标签
    git push origin -d <tag-name>
    
    # 删除远程标签
    git push origin :refs/tags/<tag-name>
    

    六、回滚操作

    # 将本地版本退回到某次提交上
    git reset --hard <commit-id> 
    
    #本地文件回滚操作步骤
    1. git log filename
    2. git reset <commit-id> filename
    3. git commit -m "Rollback filename"
    4. git checkout filename
    
    # 把暂存区的修改撤销掉,重新放回工作区
    git reset HEAD <文件名> 
    
    # 撤销上一个提交
    git revert HEAD 
    
    # 回退到上一次 reset 之前
    git reset --hard ORIG_HEAD
    
    #回滚没有提交到暂存区的文件
    git checkout ./
    

    七、日志操作

    # 显示简略的提交日志
    git log
    
    # 查看某个文件变动的具体日志信息
    git log -- filename
    
    # 查看最近两次更新的内容差异
    git log -p -2
    
    # 显示简要的增改行数统计
    git log --stat
    
    # 显示最后一次提交信息
    git log -1 HEAD
    
    # 单行显示日志信息
    git log --pretty=oneline
    
    # 查看图文格式日志
    git log --pretty=oneline --graph --abbrev-commit
    
    # 通过 ASCII 艺术的树形结构来展示所有的分支,每个分支都标示了它的名字和标签
    git log --graph --oneline --decorate --all
    
    # 查看文件改变信息
    git log --name-status
    
    # 显示所有提交,包括孤立节点
    git reflog
    

    八、远程操作

    # 查看远程分支名称,默认为 origin
    git remote
    
    # 查看远程仓库的 URL,可能有多个
    git remote -v 
    
    # 查看某个远程仓库的详细信息,默认为 origin
    git remote show <origin> 
    
    # 添加远程分支
    git remote add <origin> <地址> 
    
    # 修改远程分支的名称
    git remote rename <old-name> <new-name> 
    
    # 删除远程分支
    git remote rm <name>
    
    # 将当前名称为 gitee 的仓库推送到远程 master 分支
    git push gitee master
    
    # 检出远程分支到本地分支
    git checkout -b <branch-name> origin/<branch-name>
    
    # 重命名远程分支的名称
    git remote rename master master-bak
    
    # 删除远程某个分支
    git push origin --delete <branch-name>
    
    # 更新远程分支列表
    git remote update origin --prune
    
    # 强制将本地当前分支推送到远程仓库对应的分支
    git push origin -f
    
    # 将本地 develop 分支推送到远程仓库对应的 remotes/origin/develop 分支
    git push origin develop
    
    # 将本地所有分支推送到远程仓库对应的分支
    git push origin --all 
    

    九、统计操作

    1.统计仓库代码行数

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

    2.统计指定用户的代码行数

    // 将 username 替换具体用户名
    git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s
    ", add, subs, loc }' -
    

    3.统计每个人增删代码行数

    git log --format='%aN' | sort -u | while read name; do echo -en "$name	"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s
    ", add, subs, loc }' -; done
    

    4.统计提交数

    git log --oneline | wc -l
    

    5.更加专业的统计工具 gitstats

    http://gitstats.sourceforge.net/
    

     

  • 相关阅读:
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周&java实验报告四
    第五周课程总结&试验报告(三)
    课程总结
    第十四周课程总结
    第十三周学习总结
    第十二周编程总结
  • 原文地址:https://www.cnblogs.com/joshua317/p/15264417.html
Copyright © 2011-2022 走看看