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

    1、git基础入门

    1.1 基础概念

    git是一个开源的分布式版本控制系统,用于敏捷高效的处理或大或小的项目,更是一个内容管理系统(CMS),工作管理系统。

    git和snv差异

    1. git是分布式的,svn不是
    2. git把内容按元数据方式存储,而svn是按照文件
    3. git没有一个全局的版本号,而svn有
    4. git的内容完整性要优于svn。

    1.2 安装

    window平台安装,安装包下载地址

    https://gitforwindows.org/

    安装时候按照提示步骤,一步一步安装就行了。安装完成就可以使用git工具,还有一个图形界面的项目管理工具。

    图形管理工具

    git命令行

    1.2 git配置

    git提供了一个git config的工具,用来配置读取相应的工作环境变量

    在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:Documents and Settings$USER

    1、配置个人的用户名和邮件

    使用了global选项,以后所有的项目都会默认使用这里配置的用户信息

    1.  
      git config --global user.name 'youname'
    2.  
      git config --global user.email test@163.com

    2、查看配置信息

    1.  
      git config --list //所有的配置信息都会列出来
    2.  
      git config user.name //查看姓名
    3.  
      git config user.email //查看邮箱

    3、工作流程图

    1.3 git工作区、暂存区、版本库概念

    • 工作区:电脑里面能看到的目录
    • 暂存区:英文stage或者index,在.git目录下的index文件,暂存区也叫索引。
    • 版本库:工作区有个隐藏的目录.git,这个不算工作区,而是git的版本库

    2、git基本操作

    2.1 git初始化:git init

    git使用init来初始化仓库,因为很多命令都需要在仓库里面使用,因此首先需要初始化,初始化以后,仓库下回多出来一个.git目录(隐藏文件,可在文件夹设置里面把隐藏文件显示),.git目录下包括了所有的元数据。如果需要某个文件当做仓库,只需要再当前目录下,在执行git init命令。

    git init
     

    2.2 创建仓库:git init 【directory】 

    使用指定目录作为git仓库,执行这个命令,会生成一个newrepo的文件,作为git仓库,newrepo里面也有一个.git目录

    git init newrepo
     

    2.3 拷贝(克隆)项目:git clone [url]

    使用git clone从仓库中拷贝代码,也可以克隆项目到指定文件夹。url是git仓库地址,directory本地目录。

    1.  
      git clone [url]
    2.  
      git clone [url] [directory]

    2.4 查看项目的当前状态:git status

    查看当前项目的状态,更改了那些文件。如果你新建了文件,添加了文件到缓存,修改了文件,想知道有没有提交,都可以执行这个命令,来查看相关的文件信息,和你的操作轨迹。

    git satus
     

    2.5 新建文件等文件操作命令:touch [filename]

    1.  
      touch a // 创建一个a文件
    2.  
      echo 1234 >> a // 把1234这个内容放入a文件
    3.  
      cat a // 打开a文件 读取出a文件中的内容
    4.  
      mkdir test // 创建test文件夹
    5.  
      rm 文件名 // 删除文件

    2.6: 降文件添加到缓存区:git add [filename]

    将文件添加到缓存,如果是多个文件,在命令行后面新增文件名即可。

    1.  
      git add test.js//把test.js提交到缓存
    2.  
      git add test.js one.html//把test,one提交到缓存区
    3.  
      git add .//把所有文件提交到缓存区

    2.7 提交文件到本地仓库:git commit

    执行git commit将缓存区内容添加到仓库中。每次提交都会记录你的名字与邮箱,所以要提前设置一下。-m添加注释

    1.  
      git commit //提交到仓库
    2.  
      git commit -m '注释内容' //提交到仓库,添加备注信息
    3.  
      git commit -am ''//提交到仓库,添加备注信息,文件已经放入仓库,直接提交添加备注,不用add,commit。

    2.8 提交代码到远程仓库:git push

    git push //把文件上传到远程仓库
     

    2.9 更新代码,从远程仓库拉取代码:git pull

    git pull //从远程仓库拉取代码,类似svn的update
     

    2.10 取消已缓存的内容:git reset head /[filename]

    取消赢缓存的内容(git add提交到缓存里面的文件),

    git reset head,取消所有缓存的内容(当前版本);

    git reset [filename],取消指定文件的内容。取消以后,可执行status查看文件状态;

    1.  
      git reset head
    2.  
      git reset test.js

    2.11 删除文件:git rm 【file】

    从git里面移除某个文件,执行git rm [file]命令;

    如果要删除暂存区的的文件,则执行git rm -f [file]命令;

    如果要删除暂存区的文件,但是又要保留在工作目录中,执行 git rm --cached [file];

    从工作区删除删除目录,git rm -r [directory ]

    1.  
      git rm test.js
    2.  
      git rm -f test.js
    3.  
      git rm --cached test.js
    4.  
      git rm -r test

    2.12、比较文件:git diff

    如果文件已经修改了,还么有提交,可以执行 git diff命令,来查看差异

    2.13 查看提交日志:git log/relog

    查看命令历史,查看仓库的操作历史

    1.  
      git log
    2.  
      git reflog
    3.  
      git log -n//查看近期提交的n条记录
    4.  
      git log -p//查看提交的详细记录

    2.14 快速打开图形操作界面:gitk

    gitk
     

    2.15 查看文件信息:ls

    1.  
      ls // 查看当前路径下面的所有文件名
    2.  
      ls 文件夹名 // 查看对应文件夹中的内容
    3.  
      ls -l // 拉出最近git提交记录以及对应修改的文件名
    4.  
      ls -l -a // 拉出最近git提交记录以及对应修改的文件名,隐藏的文件也会显示

    2.16 文件目录操作:cd

    1.  
      cd ~ // 将工作路径快速切换到root
    2.  
      cd - // 将工作路径切换到上一状态
    3.  
      cd ../ // 切回到上一个工作路径
    4.  
      cd 文件夹名 // 进入某个目录
    5.  
      cd / // 进入根目录

    2.17 常见分支操作:

    1.  
      git branch //列出本地所有分支
    2.  
      git branch 分支名 // 新建分支
    3.  
      git branch // 查看当前所有分支
    4.  
      git checkout 分支名 // 检出分支
    5.  
      git checkout -b 分支名 // 创建并切换分支
    6.  
      git checkout commitId 文件名(文件路径下的文件名) 还原这个文件到对应的commitId的版本
    7.  
      (例如src/page/attendance/attendanceSum.vue我想把它还原到2个版本之前 首先git log src/page/attendance/attendanceSum.vue找到对应想要还原的版本
    8.  
      复制版本提交的commitID 然后执行git checkout commitID src/page/attendance/attendanceSum.vue
    9.  
      这样就把attendanceSum.vue这个单个文件 还原到了对应版本)
    10.  
      git branch -v // 查看分支以及提交hash值和commit信息
    11.  
      git merge 分支名 // 把该分支的内容合并到现有分支上
    12.  
      git branch -d 分支名 // 删除分支
    13.  
      git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会
    14.  
      git branch -m 旧分支名 新分支名 // 修改分支名
    15.  
      git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用)
    16.  
      git branch -r // 列出远程分支(远程所有分支名)
    17.  
      git branch -a // 查看远程分支(列出远程分支以及本地分支名)
    18.  
      git fetch // 更新remote索引
    19.  
      git push -u origin 分支名 // 将本地分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 也可解决 git建立远程分支关联时出现fatal ... upstram的问题

    2.17 标签操作:git tag

    1.  
      git tag // 查看列出所有打过的标签名
    2.  
      git tag -d 标签名 // 删除对应标签
    3.  
      git tag 标签名字 // 在当前仓库打个标签
    4.  
      git tag foo -m "message" // 在当前提交上,打标签foo 并给message信息注释
    5.  
      git tag 标签名 哈希值 -m "message" // 在某个哈希值上打标签并且写上标签的信息
    6.  
      git tag foo HEAD~4 // 在当前提交之前的第4个版本上 打标签foo
    7.  
      git push origin --tags // 把所有打好的标签推送到远程仓库
    8.  
      git push origin 标签名 // 把指定标签推送到远程仓库
    9.  
      git stash // 把暂存区的内容 暂时放在其他中 使暂存区变空
    10.  
      git stash list // 查看stash了哪些存储
    11.  
      git stash pop // 将stash中的内容恢复到当前目录,将缓存堆栈中的对应stash删除
    12.  
      git stash apply // 将stash中的内容恢复到当前目录,不会将缓存堆栈中的对应stash删除
    13.  
      git stash clear // 删除所有缓存的stash
    14.  
      git pull --tags // 把远程仓库的标签也拉取下来
    15.  
      git push origin :refs/tags/远程标签名 // 删除远程仓库的标签

    2.18 远程同步操作

    1.  
      # 下载远程仓库的所有变动
    2.  
      $ git fetch [remote]
    3.  
       
    4.  
      # 显示所有远程仓库
    5.  
      $ git remote -v
    6.  
       
    7.  
      # 显示某个远程仓库的信息
    8.  
      $ git remote show [remote]
    9.  
       
    10.  
      # 增加一个新的远程仓库,并命名
    11.  
      $ git remote add [shortname] [url]
    12.  
       
    13.  
      # 取回远程仓库的变化,并与本地分支合并
    14.  
      $ git pull [remote] [branch]
    15.  
       
    16.  
      # 上传本地指定分支到远程仓库
    17.  
      $ git push [remote] [branch]
    18.  
       
    19.  
      # 强行推送当前分支到远程仓库,即使有冲突
    20.  
      $ git push [remote] --force
    21.  
       
    22.  
      # 推送所有分支到远程仓库
    23.  
      $ git push [remote] --all

    3、提交代码步骤

    3.1 查看当前状态:git status

    第一步,查看当前文件状态,git status,查看修改了那些文件,红色字体就是修改的文件。

    3.2 添加文件到缓存区:git add .

    如果one.vue,test.vue你都都想提交执行git add .

    如果只提交一个文件,执行 git add one.vue,提交指定的文件。

    再执行 status看一下,是否全部提交成功。

    3.3 提交代码到本地仓库:git commit -m 'xx'

    提交代码(提交已经加到缓存区里面的代码)到本地仓库

    3.4 从远程主机更新代码:git pull [主机] [分支]

    取回远程主机某个分支的更新,再与本地的指定分支合并

    3.5提交代码到远程仓库:git push [主机] 【分支】

    作者:你的雷哥
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    PHP 连接oracle
    PHP 简易导出excel 类解决Excel 打开乱码
    Linux下Apache网站目录读写权限的设置
    PHP behavior 机制简单实现
    RewriteCond和13个mod_rewrite应用举例Apache伪静态
    PHP event 事件机制
    PHP 函数引用传值
    django数据库连接快速配置
    解决Django项目数据库无法迁移问题
    生成uuid唯一标识符
  • 原文地址:https://www.cnblogs.com/henuliulei/p/13651967.html
Copyright © 2011-2022 走看看