• git操作合集


    安装

    下载

    下载页面:全平台

    本地配置

    git config --global user.name "tianyun"
    
    git config --global user.email "tianyunperfect@163.com"
    

    创建用户凭证ssh

    #windows下:
    
    ssh-keygen.exe -t rsa -C "tianyunperfect@163.com"
    
    #mac下
    
    ssh-keygen -trsa -C "tianyunperfect@163.com"
    

    忽略文件

    所有语言的忽略文件

    java忽略文件

    • 忽略规则
    # 注释
    
    # 具体文件
    dlldata.c
    
    # 通配符
    *.suo
    
    # 复杂情况
    [Dd]ebug/
    x64/
    [Tt]est[Rr]esult*/
    
    
    • 全局忽略

    先切换到用户目录

    # window
    touch .gitignore_global
    
    # mac
    cd ~
    touch .gitignore_global
    
    • 本地忽略

    在git目录下,创建.ignore文件即可

    • 忽略规则使生效
    git config --global core.excludesfile ~/.gitignore_global
    
    git rm -r --cached . //清空缓存,后面需要添加所有并提交
    

    基础操作

    新建仓库

    # 初始化
    git init
    # 关联远程仓库
    git remote add origin git@server-name:path/repo-name.git
    # 强制推送
    git push -u origin master -f
    

    克隆仓库

    git clone git@github.com:tianyunlaila/tianyunlaila.github.git
    

    获取更新

    • 直接覆盖(常用)
    git pull origin master
    
    • 强制覆盖(删除一切不一样的)
    git fetch --all  
    git reset --hard origin/master 
    git pull
    
    • 手动查看不一样,再覆盖
    git fetch origin master:tmp  #先获取保存到tmp
    git diff tmp  #查看区别
    git merge tmp #再融合
    

    推送更新

    git add . //添加修改
    
    git commit -m "message" //提交
    
    git push origin master //推送修改的内容
    
    git status //查看状态
    
    git diff //修改内容
    

    查看历史

    git log //可以查看提交历史,以便确定要回退到哪个版本。
    
    git reflog //查看命令历史,以便确定要回到未来的哪个版本。
    
    # 美化历史:
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    
    以后git lg就可以显示branch变化了
    

    版本回退

    git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
    
    git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop恢复到当前状态。
    
    git reset --hard HASH #返回到某个节点,不保留修改。
    
    git reset --soft HASH #返回到某个节点。保留修改
    

    分支

    创建新分支:git branch branchName
    
    切换到分支:git checkout branchName
    
    创建并切换到分支:git checkout -b branchName
    
    合并某分支到当前分支:git merge branchName
    
    删除分支:git branch -d branchName
    

    别名

    git config --global alias.co checkout
    git config --global alias.ci commit
    git config --global alias.br branch
    
    # 使用
    git co
    git ci
    

    linux服务器

    # 安装git
    yum -y install git
    
    # 添加git用户
    adduser git
    
    # 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
    
    mkdir /home/git/.ssh/
    touch /home/git/.ssh/authorized_keys
    
    cat >> /home/git/.ssh/authorized_keys << EOF
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7p3r2VGOEE8JI4jUD4vuWj7QxXsZGne5AUcPXaHcCfX0ZarATxR2EeqEwTJvUAz0t/m/wq1DzugasUFWrUvUmEEBVh8RXXXXX@163.com
    EOF
    
    # 仓库暂定放在/home/git目录下
    # 创建git仓库
    git init --bare sample.git
    
    # 修改权限
    chown -R git:git sample.git
    
    # 禁用shell登录:
    vim /etc/passwd
    git:x:1001:1001:,,,:/home/git:/bin/bash 改为:
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    
    # 客户机clone即可
    git clone git@192.168.63.128:/home/git/sample.git
    

    公钥管理工具:gitosis

    权限管理工具:gitolite

    疑难问题

    清除历史大文件

    工作中不可避免引用一些大文件,当我们不需要时仍会占用大量内存,所以,必须清除!

    # 找出排名前五的大文件
    git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5
    
    # 找出对应的文件名
    git rev-list --objects --all | grep 8f10eff91bb6aa2de1f5d096ee2e1687b0eab007
    
    # 删除记录
    git filter-branch --index-filter 'git rm --cached --ignore-unmatch 文件名(可以*)'
    rm -Rf .git/refs/original $ rm -Rf .git/logs/ $ git gc
    
    # 彻底删除!!!
    git prune
    
    # 查看空间
    git count-objects -v
    或者du -ah
    
  • 相关阅读:
    ASP.NET 2.0+GridView开发中遇到ViewState MAC验证错误
    Microsoft Robotics Studio与LEGO机器人[转]
    .net反射技术的应用—如何调用Java的COM接口[转]
    ORACLE函数大全
    BCD代码
    SQL Server 2005中Datetime类型转Varchar类型
    新任项目经理的五项必修课[转载]
    利用SqlBulkCopy实现网上答题系统[转]
    电信技术名词解释:移动IP技术综述[转]
    ASP页面中访问基于.net的COM组件[转]
  • 原文地址:https://www.cnblogs.com/birdofparadise/p/9769241.html
Copyright © 2020-2023  润新知