zoukankan      html  css  js  c++  java
  • git常用命令

    一般操作流程:工作区-(暂存区-本地库)--拉取更新本地-推送到远程库

    一. 基本命令

     

    • git init    初始化一个Git仓库

    • git status  查看当前仓库状态

    • git log <具体id值/-1/–p> (-p具体修改了什么内容)  查看日志,以便确定要回退到哪个版本

    • git reflog 查看命令历史,以便确定回到未来的哪个版本

    二. 增删改查

     

    • git add <文件/文件夹/.>  (.代表添加所有文件) 添加到暂存区

    • git commit  -m   --amend追加修改 提交到本地库

    • git rm <文件> 删除文件

    • git reset  版本回退

     //HEAD:指当前分支的最新提交点 

     //回退上一个版本

     git reset --hard HEAD^  

     //回退到指定版本

     git reset --hard <commit id版本号> 

    • git checkout -- 撤销修改

      • 去掉"--"参数,则代表"切换分支"作用

      • 未add进暂存区时,直接撤销.

      • add进暂存区,未commit到本地库时,先取消添加( git reset HEAD  ),再执行撤销.

      • 即add进暂存区,又提交到了本地库时,采用版本回退

         

    • git diff <文件> 查看修改内容

    • git diff HEAD -- <文件>  工作区和暂存区的比较

    • git diff HEAD --cached <文件> 暂存区和分支本地库的比较

    三. 分支管理

     

    3.1HEAD:指当前分支的最新提交点

    • git show <branch-name/tag-name> 查看对应信息

    • git branch 查看分支

    • git branch 创建bn分支

    • git branch –d 删除bn分支

    • git branch –D   强制删除bn分支(用于删除一个没有合并的分支)

    • git checkout 切换bn分支

      • git checkout -b  创建并切换分支

    • git merge 合并分支到当前分支

      • "--no-ff"禁用快速模式,这样分支历史上可以查看分支信息.

      • git merge --no-ff –m“merge branch”

    3.2 冲突标记方式

    <<<<<< ======= >>>>>>>>

    3.3 git flow 管理策略

     

    • master:稳定发布版本分支

    • dev:开发分支

    • feature:新功能开发分支,开发完合并到dev分支.

    • hotfix:修复紧急bug分支,修复完合并到master和dev

      .

    四. 标签管理

     

    与分支操作类似

     

    • git tag 查看所有标签

    • git tag 新建标签

      • 默认为HEAD,也可以指定一个commit id,如git tag

      • git tag -a  -m "我是描述信息" 创建带有说明的标签

    • git push origin --tags 推送所有标签

    • git tag -d 删除本地标签

    • git push origin :refs/tags/ 删除远程标签.

      • tips:需要先删除本地标签

    五. 远程仓库

     

    5.1 仓库相关

     

    • git remote –v 查看有哪些远程仓库

    • git clone <仓库地址>   克隆某远程仓库

    使用示例:

     

    git clone git@github.com:jasonhww/test.git

    • git remote add <仓库名> <仓库地址> 本地仓库关联一个远程仓库

    使用示例:

    git remote add origin git@github.com: jasonhww /test.git

    /*如果一个本地库需要关联多个远程库,那么就用不同名称标识不同远程库地址.

     *

     *推送的时候就用对应的仓库名.

    /

    git remote add github git@github.com: jasonhww /test.git

    git remote add  gitee git@gitee.com: jasonhww /test.git

    git push github master

    git push gitee master

    • git remote rm <仓库名> 移除远程仓库关联

    使用示例:

    git remote rm origin

    5.2 分支相关

     

    • git push origin master 推送master分支到远程库

      • 第一次提交加上"-u"参数,不但推送本地分支并且还关联远程分支

    • git push origin dev 推送dev分支到远程库

    • git pull origin master 从远程库拉取master分支代码,合并到本地

    • git fetch origin master 远程库上的master分支代码拉取到本地,暂不合并(需要调用merge命令进行合并)

    • git checkout -b  origin/ 在本地创建和远程分支对应的分支

    • git branch --set-upstream  origin/ 建立本地分支和远程分支的关联

    5.3 Rebase

     

    • 优点是本地未push的分叉提交历史整理成直线

    • 缺点是本地的分叉提交已经被修改过了

    六. 贮藏操作

     

    • git stash 藏匿 (当前分支所有没有 commit 的代码先暂存起来)

    • git stash list 查看藏匿记录

    • git stash clear 清空所有藏匿记录

    • git stash pop 还原并移除(等同以下两个操作)

      1. git stash apply 还原藏匿部分

      2. git stash drop 移除最近一条藏匿记录

    七. 配置文件

     

    配置文件为位置:

    1. 全局配置文件:在用户主目录下的一个隐藏文件.gitconfig中.

    2. 仓库的配置文件:在仓库所在目录的.git/config文件中

    配置邮箱语法

     

    • --global user.name

    • --global user.email

    * --global user.name jasonhww

    * --global user.email jasonhww@163.com

    配置别名语法

     

    • --global alias.别名

    git config --global alias.st status

    git config --global alias.unstage 'reset HEAD'

     

    八. 忽略文件

     

    添加.gitignore文件到版本库中.
    github.com/github/giti…

    九. 其他

    一个GitHub允许可以添加多个Key, 但是一个key只能用于一个github账号. 此时需要通过配置文件配置多SSH的KEY对应不同github账号.

  • 相关阅读:
    Google Chart API 阮一峰的网络日志
    PHP随机函数【上】
    php实现socket推送技术
    javascript变量作用域
    如何使用jqplot描绘一个简单的线形图?
    培训小记
    Google自己的浏览器GoogleChrome
    这大半年的回顾
    一个高手的SQL求工作天数的函数
    关于TSQL中数据库重命名
  • 原文地址:https://www.cnblogs.com/a-small-lyf/p/10294071.html
Copyright © 2011-2022 走看看