zoukankan      html  css  js  c++  java
  • git的一些简单用法

    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

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

        各自开发各自的模块

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

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

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

      

  • 相关阅读:
    Flask中路由系统、Flask的参数及app的配置
    linux之master和minion
    linux之docker学习
    项目的发布(nginx、uwsgi、django、virtualenv、supervisor)
    Linux下安装和使用nginx
    linux下主从同步和redis的用法
    论图像识别的预处理技术
    图像技术分析 图像编辑器核心技术
    C++ Primer 第九章 顺序容器
    图像灰度化公式 颜色空间用途说明
  • 原文地址:https://www.cnblogs.com/wxiaoyu/p/9516958.html
Copyright © 2011-2022 走看看