zoukankan      html  css  js  c++  java
  • Git 基础应用

    Git 学习

    1.git工具基本含义

      git最大的用处就是记录每个版本的变动、比较每个版本的不同,以及多人维护和开发同一个项目。支持版本回退。

    2.git基本命令

      a.创建版本库

       $ mkdir learngit //创建目录

      $ cd learngit  //进入目录
      $ pwd         //查看当前目录
      /Users/michael/learngit

      $ git init //创建本地版本库
      Initialized empty Git repository in /Users/michael/learngit/.git/

      $ git add readme.txt //将readme.txt添加到工作区
      $ git commit -m "test"//将readme.txt提交到本地仓库
      $git status //查看目前工作区又没有没有被提交到仓库的文件
      $git diff readme.txt //在提交到仓库之前查看那里做了改动(只能在提交到仓库之前)
      $git log //查看历史记录
      $git log --pretty=oneline //在一行上面显示历史记录
      $git reset --hard HEAD^ //回退到上一个版本(
    $git reset --hard HEAD^ 表示回退到上上一一个版本
      $git reset --hard 版本代码 //回退到版本代码所代表的版本号(版本代码使用$git log 查看)
      $git reflog //显示操作后的每一个命令,包括回退版本,一般用于回退后后悔时,查看没有回退之前的版本号,然后使用$git reset --hard 版本号 ,来回到没有回退之前的版本
      $git diff HEAD -- readme.txt //查看工作区和版本库中readme.txt的不同
      $git checkout -- readme.txt //撤销最近一次对readme.txt的修改,如果还没有$git add 就回到没有修改的上一个版本,如果已经$git add后才修改,就回到刚刚$git add的状态
      $git reset HEAD readme.txt //将redme.txt从暂存区回退到工作区,然后使用$git checkout -- readme.txt 放弃工作区的修改
      $git rm readme.txt //从版本库中删除readme.txt(必须先将本地的readme.txt删除,才能使用这个命令。使用 rm readme.txt命令将本地readme.txt删除以后可以使用$git checkout -- readme.txt 将文件找回。$git checkout -- readme.txt,其实是用版本库中的版本替换工作区中的版本)
      
    $ssh-keygen -t rsa -C "example@example.com" //创建本机SSH key 用于github 网站的密匙绑定,即让github服务器知道这台主机和你的github账号是关联的,邮件地址填写自己的,(创建完成之后,在根目录会有.ssh文件夹,里面有两个文件,id_rsa和id_rsa.pub,其中id_rsa.pub里就是需要绑定在github网站上的公匙)
      
    $git remote add origin git@github.com:mingming/learngit.git //关联远程github服务器上的仓库,记得把git@github.com:mingming/learngit.git换成自己仓库的地址
      
    $git push -u origin master //推送内容到远程仓库,并且将本地master分支和远程master分支关联起来(第一次推送使用)
      $git push origin master //推送本地master分支到远程master分支,(修改后直接使用此命令推送)
      $git clone
    git@github.com:mingming/learngit.git //从远程仓库克隆,可以直接填充本地新仓库
      $git checkout -b dev //创建dev分支并且切换到dev分支
      $git branch dev // 创建dev分支
      $git checkout dev //切换到dev分支
      $git branch //列出所有分支
      $git merge dev //将dev分支的工作合并到当前分支
      $git branch -d dev //删除dev分支
      
    $git log --graph --pretty=oneline --abbrev-commit //查看分支合并图
      
    $git merge --no-ff -m "merge with no-ff" dev //以禁用Faste forword方式合并分支,合并完之后可以在历史中查看到曾经做过合并,而使用Faste forword方式则不会在历史记录中显示
      $git stash //保存工作区现场,(当临时有任务需要修改时,需要暂停本分支上面工作任务)
      $git stash list //查看本分支的工作现场列表
      $git stash apply //恢复本分支工作现场
      $git stash drop //删除stash内容
      $git stash pop //恢复本分支stash内容并且删除stash
      
    $ git stash apply stash@{0} //恢复指定的stash
      $git branch -D dev //强制删除dev分支
      $git remote -v //查看远程库详细信息
      
    $git checkout -b dev origin/dev //创建本地dev分支,
      
    $git branch --set-upstream dev origin/dev //指定本地dev和远程关联
      $git tag V1.0 //给当前分支的版本号打上标签V1.用于标记自己的版本
      $git tag //查看所有标签
      $git tag V1.0 444444 //给commit id为444444的版本号打上标签
      $git show V1.0 //查看V1.0版本的详细信息
      $git tag -a V1.0 -m "shuo ming xin xi" //打上标签并且给出标签说明
      $git tag -d V1.0 //删除V1.0标签
      $git push origin V1.0 //推送V1.0标签
      $git push origin tags //推送所有标签
      
    $git push origin :refs/tags/V1.0 //删除远程标签,(在此之前必须删除本地标签V1.0)
      
    3.git的使用技巧
      a.远程仓库上可以fork别人的项目然后,clone到本地进行二次开发
      b.可以编写.gitignore文件实现添加到工作区的时候忽略其中某些文件
      c.两个人人,或者一个人在两台电脑上修改同一段代码,其中一方push到远程之后,另一方push时,必然要git pull一下更新本地仓库,然后查看双方修改的冲突在哪里,对冲突再次修改才能push到远程
      d.搭建git服务器
        。
    $ sudo apt-get install git //在服务器端安装git软件
        。。$sudi adduser git //创建一个git用户,用来运行git服务。
        。。。收集需要登陆的用户的公匙(
    id_rsa.pub文件里的),将所有用户的公匙导入到文件/home/git/.ssh/authorized_keys,一行一个,//人数少可以使用此文件,人数多了可以使用Gitosis来管理
        。。。
    $ sudo git init --bare sample.git //在选定的作为仓库的目录中输入此命令,会创建一个名字为sample.git的空仓库
        。。。。
    $ sudo chown -R git:git sample.git //把owner改成git
        。。。。。出于安全考虑,创建的git用户不允许登陆shell,通过将/etc/passwd里面的
    git:x:1001:1001:,,,:/home/git:/bin/bash改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell即可,这样git用户就可以通过ssh链接,但是不能使用shell登陆
        。。。。。。在各自用户的电脑上使用
    $ git clone git@server:/srv/sample.git 克隆仓库就OK
      
  • 相关阅读:
    SqlServer Function 实例
    技术清单
    SQLSERVER 链接服务器执行存储过程
    SQLSERVER 链接服务器
    Oracle 新手语法记录
    MarkDown 语法备份
    C# WebAPI小记
    Rabbit MQ 学习 (二)
    Rabbit MQ 学习 (一)Window安装Erlang环境
    [vue2,nodejs,echarts,json]调查问卷
  • 原文地址:https://www.cnblogs.com/yiluxiuxing/p/4066617.html
Copyright © 2011-2022 走看看