zoukankan      html  css  js  c++  java
  • git使用

    事前准备
    安装git


    创建项目

    创建项目
      windows
        鼠标右键:git bash here
        mkdir learning_git
      Linux
        在命令窗口 mkdir learning_git
      git init

    克隆项目
      首先要知道项目的网址
      git clone 网址


    常用分支情况
      查看分支情况
        git branch   :查看本地分支
        git branch -r:查看远程分支
        git branch -a:查看远程以及本地分支
      创建分支
        git branch qdw:在当前分支基础上创建qdw 分支
      切换分支
        git checkout qdw:切换到该分支
      删除分支
        git branch -d qdw
      合并分支
        在master上进行合并
        git merge qdw
          master将qdw分支的信息合并了,也就是记录了qdw分支的修改
      合并分支遇到冲突
        如果出现了冲突,修改会有master|MERGING这样提示
          自己解决冲突,表示自己修改的冲突时修改的master分支的,qdw分支的还是没有修改的样子
      自己返回qdw 分支,然后git merge master分支就会和本地的master 分支同步了


    提交修改

      文件提交到仓库
        git add readme.txt
        git add -A:全部提交到暂存区
        git commit -m ‘添加readme.txt’  将暂存区全部提交到仓库
      git add 撤销
        git reset HEAD                    将git add的内容全部取消
        git reset HEAD read.txt       只讲read.txt取消add
      合并分支遇到冲突
        如果出现了冲突,修改会有master|MERGING这样提示
          自己解决冲突,自己解决冲突的结果是在 master中的。
          自己解决冲突,并没有对qdw分支进行更新,也就是说,自己解决冲突的结果,没有在qdw分支上体现出来
          表示自己修改的冲突时修改的master分支的,qdw分支的还是没有修改的样子
        解决完冲突,自己返回qdw 分支,然后git merge master分支就会和本地的master 分支同步了
      查看冲突
        在master 上将一个文件某个位置进行了修改,
        在qdw分支上将同一个文件相同位置进行了修改,那么就会产生冲突
        cat readme.txt
        如果一个文件有好多函数,每个人修改各自的函数,这样不会出现冲突
        同时修改一个函数才会出现冲突

    版本回退
      回退1个版本
        git reset --hard HEAD^
      回退2个版本
        git reset --hard HEAD^^
      回退10个版本
        git reset --hard HEAD~10
      会退到指定版本
        git reset --hard 6fcfc89

      


    远程分支和本地分支的对应关系:个人理解
      远程分支:
        master
        ----dev
        ---------qdw
      本地分支
        git clone 后,本地会有master 分支,这个分支是和远程的对应的
        git branch
          不会发现 dev、qdw两个分支
        git branch -a
          会发现master 
          以及remotes/origin/master;
            remotes/origin/dev;
            remotes/origin/qdw 
          这说明本地还没有dev,以及qdw这两个分支
        git checkout dev 或者qdw后
          git显示switch 成功 ,并显示your branch is up data to remotes/ origin/dev
          这说明本地的dev或者qdw创建了。
        这样本地的master,dev, qdw 和远程的master,dev,qdw是对应的。
      远程推送:
        git push origin qdw:refs/for/qdw
        如果自己:
          git checkout master
          git merge qdw
          git push origin master:refs/for/qdw
          这样也没问题,但是再次自己checkout到master分支后又和远程的master保持一致了。这样就不是自己跟踪的qdw了
        自己不论从哪个分支上git clone 都会看到所有的分支:
          如果不想让自己看到更改master 那么下载的时候就不应该从master上克隆。应该从dev上克隆
      所以:远程有多少分支,本地对应有多少分支,自己可以再创建更细的分支,这样就可以了自己灵活了。


    PUSH和PULL
      一般git push之前要先 pull一下,保证自己和远程同步
      git pull 
        git pull 全部拉取
        git pull origin dev:从远程的dev拉取到本地的当前分支
      git push: git push <远程主机名> <本地分支名>:<远程分支名>
        git push origin master
          远程分支省略,将本地分支推送到远程和该分支有追踪关系的分支(一般是同名字),如果远程没有就会被创建
        git push origin
          本地分支和远程分支存在追踪关系,
          那么远程分支和本地分支都可以省略
          将本地分支推送到远程分支上
        git push
          如果只有一个远程分支,那么远程主机名也可以省略
        git push origin 本地分支名: refs/for/远程分支名
          如果代码需要审核, 必须用这种方式,否则 会有故障
    远程branch 和本地branch的链接
      一般默认远程和本地的branch 同名就是链接的
      如果没有链接成功可以使用下面命令
        git branch --setup-stream dev origin/dev


     日志查看

     

     


       


    git 问题
      git add . 出现 the file will have its original line endings in your working directory
        换行
          A)Windows和Dos下:使用回车(CR)和换行(LF)两个字符来结束一行,回车+换行(CR+LF),即“ ”;
          B)Unix和mac下:只使用换行(LF)一个字符来结束一行,即“ ”;
        为什么会出现这个问题:
          一般git add .不会出现这个提示,只有遇到下面两种情况才会有问题,其实也不叫问题,只是一个提示
            (i)我们的团队成员是Linux/Mac平台并参与了项目的git提交
            (ii)我们Windows平台的某些软件会生成换行是LF的代码文本(如李俊德git add的是Webstorm生成的HTML项目中隐藏文件夹.idea中的workspace.xml,这个xml文件换行是LF)

    ········· 可以怎么设置呢?
          core.autocrlf是git中负责处理line ending的变量,可以设置3个值:true,false,input。
            (A)设置为true【config --global core.autocrlf true】
              当设置成true时,这意味着你在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。它将把crlf变成LF。windows 默认的是这种。可以自动切换,不用管
            (B)设置为false【config --global core.autocrlf false】
              当设置成false时,line endings将不做转换操作。文本文件保持原来的样子。
            (C)设置为input时,添加文件git仓库时,git把crlf编程lf。当有人Check代码时还是lf方式。
              因此在window操作系统下,不要使用这个设置。


            

  • 相关阅读:
    Rectangle Area
    【 2013 Multi-University Training Contest 8 】
    【 2013 Multi-University Training Contest 7 】
    【 2013 Multi-University Training Contest 6 】
    【 2013 Multi-University Training Contest 5 】
    【 2013 Multi-University Training Contest 4 】
    【 2013 Multi-University Training Contest 3 】
    【 2013 Multi-University Training Contest 2 】
    【 2013 Multi-University Training Contest 1 】
    GLConsole的编译和使用
  • 原文地址:https://www.cnblogs.com/yunshangyue71/p/13377448.html
Copyright © 2011-2022 走看看