美文网首页
Git使用进阶

Git使用进阶

作者: geekAppke | 来源:发表于2017-05-15 23:58 被阅读19次

    使用原则:先更新pull再提交commit

    git进阶命令.zshrc

    # git进阶命令
    alias gg='git lg'
    
    # 想从远程仓库获取代码,且更新本地的代码,不造成时间线爆炸
    alias gsfrs='git stash;git fetch;git rebase;git stash pop;'
    
    
    # 查看分支
    alias gb='git branch'
    alias gbv='git branch -vv'
    alias gba='git branch -a'
    alias gbr='git branch --remote'
    
    # 储藏
    alias gst='git stash -u'
    alias gsp='git stash pop --index'
    
    # 提交过但没推送到远程 提交记录
    alias gri='git rebase -i'
    # 修改上一次提交的信息
    alias gca='git commit --amend'
    alias gcam='git commit --all -m'
    

    配置忽略规则

    要忽略哪些文件和文件夹
    仅对还没有被纳入 git 版本管理的文件生效
    一旦某个文件被暂存过,再配置 .gitignore 就无效
    需要先把所有的文件取消暂存,再重新暂存

    alias reignore='git rm -r --cached . && git add .'
    

    自定义log(命令历史):直接输出,没有交互

    [alias]
        hist = "!git --no-pager log --all --pretty=format:'%Cred%h%Creset %Cgreen%ad%Creset | %s %C(bold blue)[%an |%ae]%Creset' --date=format:'%Y-%m-%d' --abbrev-commit"
        lg = "!git --no-pager log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative" 
    
        last = !git --no-pager log -1 HEAD
        st = status
        br = branch
        ci = commit
        co = checkout
        mergetest = "!f(){ git merge --no-commit --no-ff \"$1\"; git merge --abort; echo \"Merge aborted\"; };f "
    
    • 图形化的界面展示commit的关系
    • git lg -p的变化的行数

    常用Git命令

    git命令 命令说明
    ssh -T git@github.com 连接测试ssh连接
    git add [file1] 添加到本地缓存区,.或*代表全部添加
    git remote -v 查看远程仓库路径
    git log 打印日志
    git diff 当前没有add 的内容修改
    git rflog 查看所有提交记录
    git reset --hard 版本号 恢复到指定版本
    git status 检查当前文件状态

    开发中用到

    git命令 命令说明
    git rm -rf --cached . 添加.gitignore文件,清除本地缓存
    [user] name = 467603639 email = 467603639@qq.com 在.git文件夹下的config文件中单独配置账号
    git config --global user.name "用户名" 全局配置用户名email也可配置
    git config --list 查看用户信息

    标签操作

    git命令 命令说明
    git tag 查看tag号
    git push origin --tags 推送本地标签到远程
    (--tag 表示提交所有的tag到远程,普通的git push origin master 是不会把标签推到远程的)
    git tag -d tagName 删除本地tag
    git push --delete origin 1.0.5 删除远程tag

    分支操作

    git命令 命令说明
    git branch develop 创建本地develop分支
    git branch -a 查看所有分支
    git checkout master 切换到master分支
    git checkout -b dev 创建并切换dev分支
    git pull origin develop 把本地分支推送到远程
    git merge develop [在master分支下执行]
    合并dev分支代码到master
    git branch -d fixbug 删除fixbug分支
    git push origin --delete fixbug 远程删除
    ???提交之后就删除了

    冲突解决

    先将本地修改存储起来`git stash`
    `git pull`
    还原暂存的内容`git stash pop stash@{0}`
    
    git命令 命令说明
    git stash 返回到上一个commit
    git stash pop 从栈中取回修改内容

    参考资料

    相关文章

      网友评论

          本文标题:Git使用进阶

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