1. 本地库初始化操作

  命令: git init

  效果:

    Initialized empty Git repository in E:/ws/git/ws/.git/

    会在当前目录(E:/ws/git/ws)下面创建一个.git目录。

    .git目录下面有以下内容:

    

  注意: .git目录下面的内容不要乱改,不然git就不能使用。

2. 设置签名

  形式:用户名,和 Email地址,用于标识开发人员的身份。

  注意:这个用户名与远程代码托管中心的用户名和密码没有任何关系。

  签名:可以分为项目级别(仓库级别)或 系统级别。  优先级: 项目级别 > 系统用户级别

  命令:

    项目级别:

      git config  user.name 用户名   

      git config user.email 邮箱   

    系统用户级别:

      git config  --global user.name 用户名   

      git config  --global user.email 邮箱   

  项目级目的信息保存位置: .git/config

  系统用户级别信息保存位置: ~/.gitconfig

3. git命令

  git status # 查看状态

    

     master分区, 没有可以提交的东西(创建/拷贝文件 并且 使用 git add 去追踪)

    <1> 创建一个文件 good.txt

      vim good.txt

    <2> git status

      

      未追踪的文件 good.txt  (使用 git add 提交)

      

  git add filename # 将filename 提交到 暂存区

    git add good.txt # 将good.txt 提交到 暂存区

    

    

    <1> 再使用git status查看状态

      

      使用git rm -- cached 命令 删除 暂存区的文件,从而使文件变成 unstage状态

    <2> 删除暂存区文件

      

      good.txt 文件又报红色了,变成了untracked未追踪状态。

      

      工作区的文件还是存在的。

   git commit  filename -m 'commit message '  # 从暂存区提交到本地库

    

    

    工作区clean了,也就是从没有未提交的文件。

    <1> 修改good.txt文件内容,然后git status

     

    <2> 提交

      git add good.txt

      git commit good.txt -m 'second commit'

4. 查看历史版本

  (1) 第1种方式 git log

    最完整的形式, 多屏示时,空格向下翻页,B向上翻页 , Q退出

    

  (2) 第2种方式 git log --pretty =  oneline

    

  (3) 第3种方式 git log --oneline

    

  

  (4) 第4种方式 git reflog

    

5. 前进/后退

  通过指针来控制 ,指针的名称就是HEAD 

  

  git有3种方式控制指针的前进后退:

    <1> 基于索引值来操作【最好吧】

      操作示例

      先看一下当前版本good.txt的内容

      

      再看一下版本历史

      

      假设我们要后退到2f7faba版本,便可使用以下命令:

      git reset --hard 2f7faba

      

      当前版本指针是2f7faba, 第3次commit.

      最后查看一下good.txt的内容:

      

      达到我们想要的目的。

      再看一下git操作日志

      git reflog

      

      可以看到HEAD指针是2f7faba,如果要前进到9b0aa78版本,还是使用git reset --hard 命令

      

      完美!!!

    <2> 基于^符号【只能后退,不能前进】

      

       当前指针是9b0aa78, 使用git reset --hard HEAD^ 命令之后,后退一步,应该就是2f7faba

      

        确实后退到了2f7faba版本, 查看文件内容也是

      

      注意:

        git reset --hard HEAD^   # 从当前版本后通一步

          git reset --hard HEAD^^   # 从当前版本后通两步

        git reset --hard HEAD^^^   # 从当前版本后通三步

    <3> 基于~操作

        使用git reset --hard HEAD^ 后退有点尴尬,如果是后退10步,就得写10个^,所以可以使用如下命令来代替:

        git reset --hard HEAD~10  #从当前版本后通10步。

  reset命令比较:

    (1) git reset --soft 

       仅在本地库移动HEAD指针

    (2) git reset --mixed  

       本地库移动HEAD指针; 重置暂存区

    (3) git reset --hard

       本地库移动HEAD指针; 重置暂存区;重置工作区

  注意: 通过git reset --hard 版本号  可以找回删除到的文件, 但是也有个前提,那就是文件已经提交到了本地库

6. 比较文件

  命令: git diff

  (1)  git diff [文件名]   # 将工作区中的文件与暂存区进行比较

  (2)git diff [本地库中的历史版本] [文件名]  # 将工作区文件与本地库历史记录进行比较

  (3) git diff   # 不带文件名,表示比较多个文件

7. 分支

  在版本控制过程中,使用多条线进行控制

  分支操作:

    (1) 查看所有分支: git branch -v

      

    (2) 创建分支

      git branch 分支名称

      

   (3)切换分支

      git checkout 分支名称

      

   (4)合并分支

      fix分支a.txt文件内容如下:

      

      master分支a.txt文件内容如下:

      

      现在欲将fix分支a.txt 合并到 master分支中去,操作如下:

      《1》 先切换到master分支  (注意: 要合并到哪个分支就切换到那个分支去操作)

      《2》 执行merge命令

          git merge 分支名称

          

    (5) 分支合并时冲突解决

      

      现在master分支与fix分支完全相同,我们修改fix分支a.txt内容,同时也修改master分支中a.txt的内容,并且修改的内容还不相同,此时,在执行merge操作时,就会产生冲突。

     修改之后的内容:

      

      

      本次我们将master分支合并到fix分支。

      

      注意看分支状态(fix|merging)----> 处于合并状态

      查看合并的文件a.txt, 内容如下:

      

      这就需要我们手动去合并了。。。。。。。。。。。。。

      如何做,就是手动去编写文件a.txt了。。。。我将文件内容改成如下所示:

      

      然后,git status查看一下状态

      

       标记解决: git add [filename]

      

      最后git commit提交即可,注意不能带文件名

      

  

      

git常用操作命令1的更多相关文章

  1. Git常用操作命令与图解

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...

  2. 2018.4.23 git常用操作命令收集(转)

    Git常用操作命令收集: 1. 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v ...

  3. Git常用操作命令收集

      Git常用操作命令收集 1.进入本地仓库访问位置之后执行命令 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远 ...

  4. git常用操作命令

    使用git进行版本控制,分为两部分: 一: 服务端 1.1 首先要申请一个git的账号,方便团队协作.推荐开源中国(www.oschina.net),相对于github来说,有两个优点:1.访问速度很 ...

  5. 记录git常用操作命令

    GIT的常用操作 0.写在前面 作为一名开发者,熟悉使用 git 代码管理工具是一项必备的基本技能.git 相较 SVN 而言,其优点不言而喻.git 的功能非常强大,其包括的操作命令也非常的多,但是 ...

  6. git 常用操作命令

    A. 新建Git仓库,创建新文件夹git init B. 添加文件到git索引git add <filename>  --- 单个文件添加git add * --- 全部文件添加 C. 提 ...

  7. git常用操作命令使用说明

    设置用户名和邮箱 git config --global user.email 'xxx' git config --global user.name 'xxx' 创建分支 git branch xx ...

  8. git 常用操作命令行

    mkdir files : 创建一个名字为files的文件夹 cd files : 切换目录到files pwd ; 显示当前所在目录 ls -ah : 查看本地隐藏不可见的文件夹 git init ...

  9. git常用操作命令2

    以github为例,测试本地库与远程库github之间的交互 1. 本地初始化一个git库     创建一个test文件夹,然后cd到test文件内, 执行git init命令  初始化本地库成功!! ...

随机推荐

  1. php面试专题---9、会话控制考点

    php面试专题---9.会话控制考点 一.总结 一句话总结: 面向对象.设计模式这些特别好用,需要融会贯通 1.请写出PHP类权限控制修饰符? public.protected.private 2.p ...

  2. Nginx 模块 - ngx_core_module

    原文地址 示例配置 指令 accept_mutex accept_mutex_delay daemon debug_connection debug_points env error_log even ...

  3. Vagrant 手册之 Vagrantfile - 配置版本

    原文地址 配置版本是 Vagrant 1.1+(引入了大量新功能和配置选项) 能够与 Vagrant 1.0.x Vagrantfiles 保持向后兼容的机制. 现在运行 vagrant init 时 ...

  4. PHP Yii框架中使用smarty模板

    第一种方法 按照YII系统的办法生成视图觉得有点麻烦,觉得用smarty更省事.尝试着把smarty模板加进来了. date_default_timezone_set("PRC") ...

  5. Google File System 论文阅读笔记

    核心目标:Google File System是一个面向密集应用的,可伸缩的大规模分布式文件系统.GFS运行在廉价的设备上,提供给了灾难冗余的能力,为大量客户机提供了高性能的服务. 1.一系列前提 G ...

  6. JavaScript如何获得两点之间顺时针旋转的角度

    接上回:如何用javascript中的canvas让图片自己旋转 既然能够制定角度让图片旋转,那么现在要做的是自动获得旋转的角度, 让图片能够随着鼠标的方向旋转,让人物能够面朝鼠标的方向: 源代码: ...

  7. MySQL-第三篇SQL语句基础(2)数据库约束

    1.数据库约束. 约束是在表上强制执行的数据校验规则,约束主要用于保证数据库里数据的完整性. MySQL使用information_schema数据库里的TABLE_CONSTRAINTS表来保存该数 ...

  8. python获取ip地址

    #!/usr/bin/env python # -*- coding: utf-8 -*- import os import socket,fcntl,struct #crontab下shell命令无 ...

  9. 74.Maximal Rectangle(数组中的最大矩阵)

    Level:   Hard 题目描述: Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle con ...

  10. Node.js--fs 文件操作

    process 模块 在使用的时候无需通过 require() 函数来加载该模块,可以直接使用. fs 模块,在使用的时候,必须通过 require() 函数来加载该模块,方可使用. 原因:proce ...