zoukankan      html  css  js  c++  java
  • Git常用命令

    Git 命令大全

    基本操作

     
    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' # 合并上一次提交(反复修改)
     
    git commit -am 'xxx' # 将 add 和 commit 合并为一步
     
    git rm path/to/filename # 删除暂存中指定的文件
     
    git remote add origin <user>@<host>:/path/to/repository/<project-name>.git # 将本地与远程分支关联起来
     
    git push -u github master # 初次提交
     
    git branch --set-upstream-to=origin/<branch> <branch> # 设置让本地某个分支跟踪远程的某个分支
     
    git rm --cached filename # 从暂存区将文件移除
     
    git checkout -- filename # 将文件彻底从暂存区放弃
     
    git checkout --track hotfix/fix-menu # 检出远程分支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 # 查看本地当前分支与远程某一分支的差异
     
    git diff master origin/master # 查看本地 master 分支与远程 master 分支的差异
     

    合并操作

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

    标签操作

     
    git tag # 查看所有标签
     
    git tag -l 'v2.6.*' # 搜索某个标签
     
    git tag -a v1.0.2 -m "Project v1.0.2 Released" # 新建某个标签
     
    git push origin v1.0.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> # 将本地版本退回到某次提交上
     
    本地文件回滚
     
    git log filename.*
     
    git reset <commit-id> filename.*
     
    git commit -m "Rollback filename.*"
     
    git checkout filename.*
     
    git reset HEAD <文件名> # 把暂存区的修改撤销掉,重新放回工作区
     
    git revert HEAD # 撤销上一个提交
     
    git reset --hard ORIG_HEAD # 回退到上一次 reset 之前
     

    日志操作

     
    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 # 查看图文格式日志
     
    git log --graph --oneline --decorate --all # 通过 ASCII 艺术的树形结构来展示所有的分支,每个分支都标示了它的名字和标签
     
    git log --name-status # 查看文件改变信息
     
    git reflog # 显示所有提交,包括孤立节点
     

    远程操作

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

    统计操作

     
    统计仓库代码行数
    ```bash 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 }' ```
     
    统计指定用户的代码行数
    ```bash // 将 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 }' - ```
     
    统计每个人增删代码行数
    ```bash 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 ```
     
    统计提交数
    ```bash git log --oneline | wc -l ```
     
    查看仓库提交者排名 TopN
    ```bash git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 3 ```
     
    统计贡献人数
    ```bash git log --pretty='%aN' | sort -u | wc -l ```
     
    统计历史提交总数
    ```bash git rev-list --all --count ```
     
    更加专业的统计工具 gitstats
    一个小小后端的爬行痕迹
  • 相关阅读:
    svn出现黄色感叹号怎么办
    数据库设计三大范式
    windows server2008R2 64位 配置 mysql-8.0.15-winx64
    sqlquerystress
    锁表操作
    微软专用消息队列msmq的简单使用
    数据库上移和下移
    mvc全局时间输出格式化处理
    webapi jsonp处理
    泛型处理ToEntity
  • 原文地址:https://www.cnblogs.com/heikedeblack/p/14893611.html
Copyright © 2011-2022 走看看