• git日常工作常用的命令行指令雷jf


    1. git撤销提交
    git reset --hard HEAD^ //多次提交执行多次
    git push origin master --force //强制将当前点提交的master分支

    git reset --soft HEAD^ //撤销 add
    git reset --soft HEAD~1

    2. git撤销add
    git status 先看一下add 中的文件
    git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
    git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

    git commit --amend 修改注释
    git restore --staged xxx 撤销删除已经删除的文件

    2.1 git 撤销 commit
    git reset --soft HEAD~


    3. git修改远程分支名
    git branch -m newname
    git push -f origin newname
    git push -d origin master

    4.查看url
    git remote -v
    5.创建空白git checkout -b feature/0.1.1 develop
    创建空白分支
    a. 创建新分支
    git branch <new_branch>
    git checkout <new_branch>
    或者不带历史提交记录
    git checkout --orphan <new_branch>
    b.删除多余文件
    git clean -d -fx

    c.清除cached
    git rm --cached -r .
    git clean -f -d
    git commit --allow-empty -m "init"
    d.推送到远端
    git push origin <new_branch>

    6.推送标签TAG到远程仓库
    git tag 列出所有标签
    git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
    a.push单个tag,命令格式为:git push origin [tagname]
    例如:
    git push origin v1.0 #将本地v1.0的tag推送到远端服务器
    b.push所有tag,命令格式为:git push [origin] --tags
    例如:
    git push --tags

    git push origin --tags
    c.删除tag
    git tag -d V0.8.0 删除本地tag
    git push origin :refs/tags/V0.8.0 删除远端tag

    7. 合并提交
    git rebase -i HEAD~2

    8. 查看提交历史记录
    git log --onelinegit log --oneline --graphgit log -- filePath 查询文件的改动记录
    git log --name-only 查询每次提交改动的文件记录git log --pretty=format:"%h %s %an %ad" --date=short | grep leijinfeng1 查询个人提交记录
    git log --no-merges --since=2020-06-02 --until=2022-06-04 --author="leijinfeng1" --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命令统计在一段时间内的代码更改数量
    1、根据用户名来统计
    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\n", add, subs, loc }' -
    把username换成自己的用户名就可以了
    2、按照一段时间来统计
    git log --since=2022-02-14 --until=2022-07-28 --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 }'
    把时间切换成自己想要统计的时间段就可以了
    3、按照用户名和时间段来统计
    git log --author="username" --since=2021-12-31 --until=2022-08-01 --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 }' -
    同理,更改用户名、时间为自己想要统计的就可以了
    9. git 查看本地操作记录
    git reflog


    10. 提交到多个远程仓库
    修改配置文件 .git\config
    [core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    [remote "origin"]
    url = https://gitee.com/xxxx/xxx.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    + [remote "all"]
    + url = https://gitee.com/xxx/xxx.git
    + url = https://gitHub.com/xxx/xxx.git
    [branch "master"]
    remote = origin
    merge = refs/heads/master
    同时提交到两个仓库
    git push all master
    git push all develop
    git push all --tags
    只提交一个仓库
    git push origin master
    git push origin develop
    git push origin --tags
    11. --depth=1 后如何拉取其他分支:
    $ git remote set-branches origin 'remote_branch_name'
    $ git fetch --depth 1 origin remote_branch_name
    $ git checkout remote_branch_name
    https://www.jianshu.com/p/1397ce990c58
    12. 查看远程仓库地址:
    git remote get-url --push origin
    或者直接查看项目根目录下 .git/config 文件
    13. 常用git stash命令:
    (1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
    (2)git stash list :查看stash了哪些存储
    (3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
    (4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
    (5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
    (6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
    (7)git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
    (8)git stash clear :删除所有缓存的stash

    来源: https://www.cnblogs.com/zndxall/archive/2018

    14. submodule 克隆含有子模块的项目
    先clone当前项目,然后再更新子模块
    1)git submodule init
    2)git submodule update
    1和2可以合并为:git submodule update --init
    若还存在嵌套子模块可以用:git submodule update --init --recursive

    15. git push 时发现有冲突
    1. git pull --rebase 先拉代码,解决冲突
    2. git add . 再添加修改到缓存区
    3. git rebase --continue 以 amend 的形式重新 commit
    4. git push origin master 再重新 push

    16. 设置取消代理
    git config --global https.proxy http://127.0.0.1:4780
    git config --global https.proxy https://127.0.0.1:4780
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    17. git 冲突处理
    git cherry-pick --continue
    git rebase --continue
    git merge --continue

    18. 修改 git commit 提交记录里面的 email 与 username
    修改Git 本次Commit提交记录的用户名Name和邮箱Email
    git commit --amend --author="new-name <xxx@new.com>"
    修改Git 全部Commit提交记录的用户名Name和邮箱Email
    原文(有删改):https://cloud.tencent.com/developer/article/1352623
    准备
    在项目根目录下创建 email.sh 写入下面这段代码
    #!/bin/sh

    git filter-branch --env-filter '

    # 要修改的邮箱
    OLD_EMAIL="xxx@old.com"

    # 新的邮箱以及用户名
    CORRECT_NAME="your-name"
    CORRECT_EMAIL="xxx@old.com"

    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags

    git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
    把OLD_EMAIL、CORRECT_NAME、CORRECT_EMAIL改成 需要修改的新旧邮箱用户名即可

    19. git http 提交拉取时每次需要输入用户名和密码
    git config --global credential.helper store

    20. 一个命令解决 git status 命令执行慢
    git gc
    如果你的 git 仓库文件较多的话,随着时间越长,你每次执行 git status 命令会越来越慢。这是由于本地有过多的缓存造成的。git 为这个问题提供了一个简单的解决方案,那就是: git gc 当你执行这个命令时,git 会清理不必要的文件并优化本地存储库。

  • 相关阅读:
    vim配置文件解析
    VIM使用技巧5
    补不manjaro系统
    linux下终端录制
    VIM的修炼等级
    VIM使用技巧4
    64位linux 汇编
    linux下编译安装gcc5.1
    Git学习笔记
    HTML实体符号代码速查表
  • 原文地址:https://www.cnblogs.com/whoknows1/p/16825816.html
Copyright © 2020-2023  润新知