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
    一个小小后端的爬行痕迹
  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/heikedeblack/p/14893611.html
Copyright © 2011-2022 走看看