美文网首页Git
Git 常用命令梳理

Git 常用命令梳理

作者: 誓词倾城 | 来源:发表于2017-06-27 14:44 被阅读67次

    结合自己的开发实践,梳理常用操作命令。用于后续的参考(做备忘录)

    Git 安装

    OS : Ubuntu 16.0.4

    # 安装
    sudo apt install git
    # 验证
    git --version
    

    Git 配置

    # 用户名、邮箱配置 与 取消配置
    git config [--global] user.name user.name/email
    git config [--global] --unset user.name/email
    # 查看项目配置信息
    git config -l
    # commit 默认编辑器
    1. git config --global core.editor "vim"
    2. export GIT_EDITOR=vim
    3. 修改~/.gitconfig, 添加
    [core]
        editor = 'vim'
    # 查看远程库
    git remote
    # 配置多个远程库
    git remote add [upstream(远程库别名)] [ssh仓库地址]
    # 删除远程库
    git remote rm [upstream(远程库别名)]
    

    Git 多账号配置

    # 新建ssh key (~/.ssh),并自定义秘钥文件名(id_rsa_xxx)
    ssh-keygen -t rsa -C "XXXX@xxx.com"
    # SSH 添加新私钥
    ssh-add ~/.ssh/id_rsa_xxx
    # 添加配置文件(~/.ssh/config)
    vim config
    
    以下内容添加到config文件中:
    # start
    # 该文件用于配置私钥对应的服务器
    Host github
    HostName github.com
    User xxx
    IdentityFile C:/Users/Administrator/.ssh/id_rsa
    
    # 建一个别名xxx,新建的帐号使用这个别名做克隆和更新
    Host xxx //别名
    HostName xxx
    User xxx
    IdentityFile C:/Users/Administrator/.ssh/id_rsa_xxx
    # end
    
    # 测试
    ssh -T git@github.com  
    ssh -T git@github
    # 应用
    git clone git@github:xxx.git
    

    参考链接:http://www.cnblogs.com/BeginMan/p/3548139.html

    Git 基本命令

    # 仓库拉取
    git clone [仓库地址]
    # 拉取更新
    git pull / fetch  [远程仓库名] :git fetch origin
    # 分支查看
    git branch
    # 分支创建
    git branch -b branchXX
    # 切换分支
    git checkout branchXX
    # 分支删除
    git branch -D branchXX
    # 远程分支删除
    git push origin --delete branchXX
    # 分支合并
    git merge branchXX
    # 修改内容查看
    git diff [文件全路径] //查看文件修改内容,便于review
    git diff [分支名] //比较间的不同
    # 查看提交日志
    git log
    

    git fetchgit pull 区别,简单讲,git pull会自动与本地代码合并,而git fetch 需要手动执行merge操作。官方介绍

    数据回滚

    git本地架构

    git reset

    git reset 命令执行本地仓库中数据的回退
    git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit_id>]

    --mixed 重置本地仓库当前版本,以及重置缓存区(默认)(缓存区对应图中的index)
    --soft    仅仅重置本地仓库
    --hard 重置工作区、暂存区、本地仓库
    --merge 重置工作区、暂存区、本地仓库
    --keep 重置本地仓库 但是保留本地修改
    
    # HEAD指向的版本就是当前版本
    git reset --hard HEAD^ //回退的上一个版本,可以用来清除已经add到缓存区但是不想进一步提交的内容
    git reset --hard HEAD^^ //回退的上上一个版本
    git reset --hard HEAD~10 //回退的上10个版本
    
    # 使用commit id回退(commit_id使用 git log 查看)
    git reset --hard commit_id
    git reset --hard 3628164 // commit_id 可以只输入前几个字符
    
    git reflog // 查看命令历史,即便自己回退错误,也能正确的返回
    

    git revert

    git revert 用一个新提交来消除一个历史提交所做的任何修改

    git revert [commit_id] //commit_id使用 git log 查看
    

    git checkout --

    git checkout -- 用来回退本地已修改但没有 commit 的文件

    git checkout -- [文件全路径/通配符]
    

    git stash

    git stash 临时存储。你正在开发A功能,B功能的有个紧急的bug需要修复,但是正在开发的代码不能构成一个commit,你该怎么办?使用 git stash 储藏当前工作状态。

    # 储藏
    git stash
    # 查看储藏的队列
    git stash list
    # 还原
    git stash pop/apply  [stash] //stash 为 git stash list 中的索引值,如stash@{0},
    默认还原队列中的第一个存储状态
    # 清除储藏的所有状态
    git stash clear 
    

    git popgit apply的区别为 git pop 还原后会删除该储藏记录,git stash pop 相当于 git stash apply && git stash drop

    Git 小技巧

    # 删除本地还未add的修改
    git clean -f -d 
    # 在本地库中删除一个文件
    git rm 文件名
    # 内建的图形化 git:
    gitk
    # 彩色的 git 输出:
    git config color.ui true
    # 显示历史记录时,每个提交的信息只显示一行:
    git config format.pretty oneline
    # 可视化分支合并图
    git log --graph  
    

    官网链接

    相关文章

      网友评论

        本文标题:Git 常用命令梳理

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