zoukankan      html  css  js  c++  java
  • Git系列 (02):git常用命令

    生成Git密匙

    ls ~/.ssh  # 查看是否有rsa文件
    ssh-keygen -t rsa -C "email@qq.com"  # 生成ssh key文件
    cat ~/.ssh/id_rsa.pub  # 查看公钥
    

    commit提交规范

    • feat : 新功能【技艺、功绩】
    • fix : 修复bug
    • perf : 优化相关,比如提升性能、体验
    • docs : 仅仅修改了文档,比如README...
    • style : 代码格式改变,修改了空格、缩进格式、逗号等,不改变代码逻辑
    • refactor : 某个已有功能重构或目录重构,没有增加新功能
    • test : 增加测试,包括单元测试、集成测试等
    • build : 改变了build工具 例如glup,webpack,rollup的配置等
    • revert : 撤销上一次的 commit
    • chore : 构建过程或辅助工具的变动,比如增加依赖库、工具等【日常事务】
    • merge:代码合并
    • sync:同步主线或分支的Bug

    常用命令

    git config

    git config --global user.name "Mona Lisa"  # 设置 Git 用户名
    git config --global user.email "Mona Lisa"  # 设置 Git 邮箱
    
    git config --global user.name  # 获取 Git 用户名
    git config --global user.email  # 获取 Git 用户名
    

    git clone

    git clone -b dev Git地址   # 拉取指定分支的代码
    

    git remote

    git remote  // 查看已经配置的远程仓库服务器
    git remote add origin Git地址   // 把本地仓库关联到gitHub上的仓库
    git remote rename origin upstream   // 远程仓库重命名, 远程仓库服务器的默认名称为 origin
    git remote -v   // 显示需要读写远程仓库使用的Git保存的简写与其对应的URL 
    git remote remove origin  // 解除远程关联
    

    git log

    git log    # 显示从最近到最远的提交版本信息
    git reflog  # 显示从最近到最远的提交版本信息(包括被删除的commit记录)
    git log --graph  # 可以看到分支合并图
    git log --author='BurCha'  # 显示某一个作者所有的提交(通过git log查看作者名)
    

    git diff

    git diff   # 比较工作区和暂存区之间的区别 使用 q 退出
    git diff HEAD   # 比较工作区和最新本地仓库之间的区别
    git diff HEAD^   # 比较工作区和最新远程仓库之间的区别
    git diff --cached   # 比较暂存区和最新本地仓库之间的区别
    git diff branch2  # 查看当前分支和branch2分支的差别
    git diff -- views/monitorScreen/monitor/index.vue  # 后面加路径表示查看指定文件的区别
    

    git reset

    # --soft  --hard 都不会撤销github平台提交
    # 回退到上一个提交版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
    git reset --soft HEAD^  # 会保留工作区的内容,撤销最近commit/push回退到暂存区
    git reset --hard HEAD^  # 清空工作区和暂存区的改动,撤销最近commit/push
    git reset --hard 1094a  # 回退到指定提交版本(1094a...是commit id,版本号没必要写全,前几位就可以了)
    

    git restore

    git restore --staged .  # 把暂存区全部文件的修改撤销掉(unstage),重新放回工作区
    git restore --staged readme.txt  # 把暂存区指定文件的修改撤销掉(unstage),重新放回工作区
    git restore .  # 丢弃工作区的全部修改
    git restore readme.txt	# 丢弃工作区指定文件的修改,这里有两种情况:一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态。注意:从来没有被Untracked(新建文件没有git add)就被修改或删除的文件,是无法撤销或恢复的!
    

    git branch

    git branch dev   # 创建分支
    git branch   # 查看本地分支
    git branch -r  # 查看远程分支
    git branch -m oldName newName  # 修改本地分支名称
    git branch -d Ddev   # 删除分支
    git branch --set-upstream-to=origin/remote_branch your_branch  # 手动建立追踪关系,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。
    git branch -vv  # 查看本地分支追踪的远程分支
    

    git checkout

    git checkout dev   # 切换分支
    git checkout -b dev  # 切换并创建分支
    git checkout -b dev origin/dev  # 切换并创建分支并关联远程分支
    

    git add commit status

    git add .   # 把工作区中所有最新修改的文件都提交到暂存区
    git commit -m "描述信息"   # 提交到本地仓库
    git status  # 查看当前文件的状态(红色代表在工作区,绿色代表在暂存区,看不见东西(nothing to commit)证明所有修改的信息都已经提交到本地仓库)
    

    git stash

    git stash   # 能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
    git stash save "save message"   # 可以添加备注
    git stash list   # 查看当前stash中有哪些存储
    git stash pop   # 将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
    git stash apply   # 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},比如第二个:stash@{1} 
    git stash drop stash@{$num}   # 丢弃存储,从列表中删除这个存储
    

    git fetch merge

    # 取回指定分支的更新,从远程的origin仓库的dev分支下载代码到本地的origin/dev 【仅仅是改变FETCH_HEAD指向,并不会创建实体分支】
    git fetch <远程主机名> <远程分支名>  
    git fetch origin dev
    # 所取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的dev分支,就要用origin/dev读取。
    git merge origin/dev 
    
    # 从远程的origin仓库的master-2020.06.23分支下载到本地并新建一个分支master-2020.06.23(不会自动切换分支)【会创建实体分支】
    git fetch <远程主机名> <远程分支名>:<本地分支名>
    git fetch origin master-2020.06.23:master-2020.06.23  
    git merge master-2020.06.23
    

    git merge

    git merge dev   # 用于合并指定分支(dev)到当前分
    

    git pull

    git pull --rebase upstream master  # 默认merge到当前分支,从远程仓库中获去某个分支的更新,在于本地指定的分支进行merge。此命令本来是:git pull --rebase 【远程主机名】 【远程分支名】:【本地分支名】的省略写法
    

    git push

    # 此命令本来是:git push 【远程主机名】 【本地分支名】:【远程分支名】的省略写法
    # 【前提:本地必须要有libc分支,否则推送失败,远程自动创建分支失败】
    # 无论本地分支有没有关联远程分支,远程都会自动创建一个libc分支,如使用git push -u,则会建立追踪关系
    git push upstream libc   
    git push -u upstream libc  # 建立与远程libc分支的追踪关系,以后就可以git push / git pull 不指定参数 直接推送或者拉取
    
    人间不正经生活手册
  • 相关阅读:
    Metro-Ural119递推
    Flags-Ural1225简单递推
    Candies-POJ3159差分约束
    Is the Information Reliable? -POJ2983差分约束
    MPI Maelstrom
    Codeforces Round #342 (Div. 2)-B. War of the Corporations
    Codeforces Round #342 (Div. 2)-A. Guest From the Past
    Vim升华之树形目录插件NERDTree安装图解
    The Same Game-POJ1027模拟
    Flesch Reading Ease -POJ3371模拟
  • 原文地址:https://www.cnblogs.com/burc/p/14119668.html
Copyright © 2011-2022 走看看