1.工作区暂存区和仓库区

工作区

  对于添加修改删除文件的操作,都发生在工作区中

暂存区

  暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分

仓库区

  仓库区表示个人开发的一个小阶段的完成

    仓库区中记录的各版本是可以查看并回退的

    但是在暂存区的版本一旦提交就再也没有了

二 .git单人本地仓库操作

  2.1 安装git

    sudo apt-get install git

  我是用的虚拟机装的ubuntu

  2.2 查看装好没有

    直接 git就好了

  2.3 创建项目

    在桌面随便建一个文件夹test表示工作项目

    Desktop/test

  2.4 创建本地仓库

    进入到test,并创建本地仓库.git

    新创建的本地仓库.git是个空仓库

    cd Desktop/test/

    git init

    

    创建本地仓库 .git 后就有

    

   2.5配置个人信息

     这一步可配可不配

     git config user.name '张三'

     git config user.email 'zhangsan@163.com'

     

  2.6 新建py文件

    在项目文件test里创建login.py,用于版本控制演示

    

   2.7查看文件状态   

    红色表示新建文件或者新修改的文件,都在工作区.

    绿色表示文件在暂存区

    新建的login.py文件在工作区,需要添加到暂存区并提交到仓库区

    git status

    

  2.8 将工作区文件添加到暂存区

    # 添加项目中所有文件 git add .

    或者

    # 添加指定文件 git add login.p

    

  2.9将暂存区文件提交到仓库区

   commit会生成一条版本记录

   -m后面是版本描述信息

   git commit -m '立项'

   

  也可以将这两步合为一步,直接 git commit -am '立项'

  2.10 查看历史版本

  git log 或者 git reflog

  

  2.11 回退版本

    方案一:   

      HEAD表示当前最新版本

      HEAD^表示当前最新版本的前一个版本

      HEAD^^表示当前最新版本的前两个版本,以此类推...

      HEAD~1表示当前最新版本的前一个版本

      HEAD~10表示当前最新版本的前10个版本,以此类推...

      git reset  --hard HEAD^

    

    

    方案二: 当版本多的时候精确选择

      先通过查看版本记录,然后

      git reset --hard 版本号

      

   2.12 撤销修改

    只能撤销国内工作区、暂存区的代码,不能撤销仓库区的代码

    撤销仓库区的代码就相当于回退版本操作

      撤销工作区代码

        新加代码 num3 = 30 ,不 add 到暂存区,保留在工作区

          git checkout 文件名

      

      撤销暂存区代码

        新加代码num3 =30 ,并add到暂存区

        # 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名

        # 第二步:撤销工作区代码 git checkout 文件名

        

    

   2.13 删除文件

    在项目中新建test.py文件,并添加和提交到仓库

    确定删除处理:

      # 删除文件 rm 文件名

      # git确定删除文件,对比添加文件git add git rm 文件名

      # 删除后记录删除操作版本 git commit -m '删除描述'

      

    

    误删处理: 撤销修改即可

      # 删除文件 rm 文件名

      # git撤销修改 git checkout -- 文件名

      

三.git远程仓库

  先准备个文件夹,用来克隆项目经理的用manager,其他成员取自己名字或者好识别的

  3.1 登录注册github

  3.2 创建仓库入口

    

  3.3 编辑仓库信息

   

  3.4 仓库创建完成

   

   3.5查看仓库地址

    

   3.6 经理的工作

    立项:克隆远程仓库+配置身份信息+创建项目+推送项目到远程仓库

    1。克隆远程仓库的命令

       cd Desktop/manager/

       git clone https://github.com/zhangxiaochuZXC/test007.git

    2.克隆远程仓库到本地

     在经理的文件夹下终端输入

     

   3.克隆成功后查看经理的文件

    

    4.配置经理身份信息

      cd Desktop/manager/test007/

      git config user.name '经理'

      git config user.email 'manager@163.com'

    

    5.创建项目

    

    6.推送项目到远程仓库

    # 工作区添加到暂存区 git add .

    # 暂存区提交到仓库区 git commit -m '立项'

    # 推送到远程仓库 git pus

    

    

  在 push 的时候需要设置账号与密码,该密码则是 github 的账号与密码

  如果在每次 push 都需要设置账号与密码,那么可以设置记住密码  

  设置记住密码(默认15分钟): git config --global credential.helper cache

   如果想自己设置时间,可以这样做(1小时后失效): git config credential.helper 'cache --timeout=3600'

   长期存储密码: git config --global credential.helper store

    Pycharm 可以自动记住密码

  张三的工作

  获取项目:克隆项目到本地、配置身份信息

    1.克隆项目到本地

      cd Desktop/zhangsan/

      git clone https://github.com/zhangxiaochuZXC/test007.git

    2.克隆成功后查看张三的文件

      

    3.配置张三身份信息

      cd Desktop/zhangsan/test007/

      git config user.name '张三'

      git config user.email 'zhangsan@163.com'

    4.然后用编译器写代码就好了,写完一个功能就push提交到远程仓库区

最后总结下:

  1.要使用git命令操作仓库,需要进入到仓库内部

  2.要同步服务器代码就执行:git pull

  3.本地仓库记录版本就执行:git commit -am '版本描述'

  4.推送代码到服务器就执行:git push

  5.编辑代码前要先pull,编辑完再commit,最后推送是push

代码冲突问题:

  提示:多人协同开发时,避免不了会出现代码冲突的情况

  原因:多人同时修改了同一个文件

  危害:会影响正常的开发进度

  注意:一旦出现代码冲突,必须先解决再做后续开发

解决冲突

  原则:谁冲突谁解决,并且一定要协商解决

  方案:保留所有代码 或者 保留某一人代码

  解决完冲突代码后,依然需要addcommitpush

补充:

  容易冲突的操作方式

    多个人同时操作了同一个文件

    一个人一直写不提交

    修改之前不更新最新代码

    提交之前不更新最新代码

    擅自修改同事代码

  减少冲突的操作方式

    养成良好的操作习惯,先pull在修改,修改完立即commitpush

    一定要确保自己正在修改的文件是最新版本的

    各自开发各自的模块

    如果要修改公共文件,一定要先确认有没有人正在修改

    下班前一定要提交代码,上班第一件事拉取最新代码

    一定不要擅自修改同事的代码

  

git的一些简单用法的更多相关文章

  1. [转]git fetch 的简单用法:更新远程代码到本地仓库

    [原文地址]:http://my.eoe.cn/com360/archive/3533.html Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Gi ...

  2. git fetch 的简单用法:更新远程代码到本地仓库

    方式一 1. 查看远程仓库 1 2 3 4 5 6 $ git remote -v eoecn https://github.com/eoecn/android-app.git (fetch) eoe ...

  3. git fetch 的简单用法:更新远程代码到本地仓库及冲突处理

    Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Github参与eoe的开源项目指南方式一1. 查看远程仓库 1 2 3 4 5 6 $ git re ...

  4. git diff 的简单使用(比较版本区别)

    假如我们修改viewMail.vue 文件(部分代码) 从 //根据ID获取详情 getById () { let that = this; this.viewMailModal = true; th ...

  5. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

  6. Git和Github简单教程

    原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...

  7. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

  8. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  9. [转]Valgrind简单用法

    [转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...

随机推荐

  1. linux c 链接详解5-虚拟内存管理

    5. 虚拟内存管理 我们知道操作系统利用体系结构提供的VA到PA的转换机制实现虚拟内存管理.有了共享库的基础知识之后,现在我们可以进一步理解虚拟内存管理了.首先分析一个例子: $ ps PID TTY ...

  2. Nginx的应用之虚拟主机

    开始前请确保selinux关闭,否则当配置完虚拟主机后,尽管权限或者网站目录都正确,访问的结果也是403 nginx的虚拟主机有三种方式: 一.基于域名的虚拟主机 (1)创建对应的web站点目录以及程 ...

  3. 常看 Shell: 文本文件操作

    文件显示和信息 wc wc 可以用于统计文件的行数和单词数. nl nl 在文件的每行内容前面加上行号. 基于行的操作 grep grep 用于筛选匹配特定字符的行. grep "Hello ...

  4. maven3常用命令、java项目搭建、web项目搭建详细图解(转)

     转自:http://blog.csdn.net/edward0830ly/article/details/8748986 maven3常用命令.java项目搭建.web项目搭建详细图解 2013-0 ...

  5. 三、Centos7安装Mysql

    1.到服务器下载的链接 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 2.执行命令 sudo r ...

  6. Flink(一)集群配置

    三台主机 centos6 已经完成的工作: 防火墙已关闭 主机名修改完毕,ssh免密登陆配置完成 jdk已安装 zookeeper已经部署并运行 hadoop已经部署并运行 版本:flink-1.8. ...

  7. web服务器和后端语言的关系

    1.web服务nginx和php的相互关系  : https://www.cnblogs.com/luckylihuizhou/p/6387171.html 个人理解:web服务器本身没有处理后端语言 ...

  8. 修改Tomcat的server.xml之后,tomcat 部署项目报错:Removing obsolete files from server... Could not clean server of obsolete files: null java.lang.NullPointerException

    介个是你在clean tomcat的时候 文件没有clean清.(临时崩溃 系统宕机或其他原因)导致自己eclipse里的service.xml 在clean时没有copy一致. 解决方案: 1找到你 ...

  9. JavaScript--字符串与JSON对象相互转换

    JSON.parse() 兼容性:Chrome,Firefox (Gecko) 3.5 (1.9.1),IE 8.0,Safari 4.0 JSON.parse('[1, 5, "false ...

  10. (转)使用OpenGL ES显示图像

    编写:jdneo - 原文:http://developer.android.com/training/graphics/opengl/index.html 转:http://hukai.me/and ...